diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java index dca5729a7..bf85af1e8 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java @@ -118,6 +118,24 @@ public class WxProjectConfigController extends BaseController { // // } + @ApiOperation("查询商场集团列表") + @GetMapping(value = "/childMallList") + @SystemControllerLog(description = "商场基础数据") + @TenantIgnore + public ResultData childMallList(@ModelAttribute WxMall wxMall, Integer pageNum, Integer pageSize) { + logger.debug("[" + getIpAddr() + "] WxProjectConfigController::getMallList"); + try { + if(wxMall == null){ + wxMall = new WxMall(); + } + wxMall.setParentTenantId(this.getTenantInfo().getTenantId()); + PageInfo page = wxMallService.listAsPage(wxMall, pageNum, pageSize); + return new ResultData(page); + }catch (Exception e){ + logger.error(e.getMessage(),e); + return new ResultData(ErrorCode.SYS_SERVER_ERROR); + } + } @ApiOperation("查询商场集团列表") @GetMapping(value = "/mallList") diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java index cf1086978..562779b30 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponController.java @@ -84,8 +84,22 @@ public class WxCouponController extends BaseController { public ResultData parentCouponList(@ModelAttribute WxCoupon wxCoupon, Integer pageNum, Integer pageSize,Boolean isList) { logger.debug("[" + getIpAddr() + "] WxCouponController::list"); if (wxCoupon == null) wxCoupon = new WxCoupon(); - wxCoupon.setTenantId(getTenantInfo().getParentTenantId()); + TenantEntity mallTenantEntity = getTenantInfo(); + wxCoupon.setTenantId(mallTenantEntity.getParentTenantId()); wxCoupon.setParentTenantId(null); + //平台券 + if (EnumCouponType.COUPON_DOUYIN_PLAT.getCode() == wxCoupon.getType()) { + //查询已经分配了的parentCouponList + WxCouponMall couponMall = new WxCouponMall(); + couponMall.updateTenantInfo(wxCoupon); + couponMall.setMallTenantId(mallTenantEntity.getTenantId()); + List couponIds = wxCouponMallService.listCouponIds(couponMall); + if (null != couponIds && couponIds.size() > 0 ) { + wxCoupon.setIds(couponIds); + }else { + wxCoupon.setId(-1L); + } + } return couponList(wxCoupon, pageNum, pageSize, isList); } @@ -407,7 +421,8 @@ public class WxCouponController extends BaseController { @SystemControllerLog(description = "券投放-查询") public ResultData findById(@RequestParam Long id) { logger.debug("[" + getIpAddr() + "] WxCouponController::findById"); - return new ResultData(wxCouponService.getVoById(id,getTenantInfo().getTenantId())); + TenantEntity tenantEntity = getTenantInfo(); + return new ResultData(wxCouponService.getVoById(id,tenantEntity.getTenantId(),tenantEntity)); } @TenantIgnore @@ -417,7 +432,8 @@ public class WxCouponController extends BaseController { @SystemControllerLog(description = "券投放-查询") public ResultData findParentCouponById(@RequestParam Long id) { logger.debug("[" + getIpAddr() + "] WxCouponController::findById"); - return new ResultData(wxCouponService.getVoById(id,getTenantInfo().getParentTenantId())); + TenantEntity tenantEntity = getTenantInfo(); + return new ResultData(wxCouponService.getVoById(id,getTenantInfo().getParentTenantId(),tenantEntity)); } @TenantIgnore @@ -599,6 +615,7 @@ public class WxCouponController extends BaseController { return new ResultData(wxCouponMallService.list(wxCouponMall,true)); } + @TenantIgnore @ApiOperation("平台券商场列表") @GetMapping("/getCouponMall") @ApiImplicitParams({ @@ -636,6 +653,7 @@ public class WxCouponController extends BaseController { } } + @TenantIgnore @ApiOperation("商场设置平台券商户") @PostMapping("/setParentCouponMerchants") public ResultData setMallMerchants(@RequestBody WxCoupon wxCoupon) { @@ -676,6 +694,7 @@ public class WxCouponController extends BaseController { } + @TenantIgnore @ApiOperation("商场设置平台券已完成") @PostMapping("/setPlatCouponFinished") public ResultData setPlatCouponFinished(@RequestBody WxCoupon wxCoupon) { @@ -694,7 +713,8 @@ public class WxCouponController extends BaseController { } - @ApiOperation("商场设置平台券已完成") + @TenantIgnore + @ApiOperation("商场设置平台券未完成") @PostMapping("/setPlatCouponUnFinished") public ResultData setPlatCouponUnFinished(@RequestBody WxCoupon wxCoupon) { try { diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponController.java index 226edae9f..90ecfed59 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponController.java @@ -383,7 +383,8 @@ public class WxCouponController extends BaseController { @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) public ResultData findById(@RequestParam Long id) { logger.debug("[" + getIpAddr() + "] WxCouponController::findById"); - return new ResultData(wxCouponService.getVoById(id,getTenantInfo().getTenantId())); + TenantEntity tenantEntity = getTenantInfo(); + return new ResultData(wxCouponService.getVoById(id,tenantEntity.getTenantId(),tenantEntity)); } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index e57b8ba8d..de3bc24ec 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -210,7 +210,7 @@ public class WxCouponOrderController extends BaseController { return new ResultData(ErrorCode.COUPON_IS_EMPTY); } } else { - wxCouponCVo = wxCouponService.getVoById(wxCouponOrderCVo.getCouponId(),wxMerchantBUser.getTenantId()); + wxCouponCVo = wxCouponService.getVoById(wxCouponOrderCVo.getCouponId(),wxMerchantBUser.getTenantId(),wxMerchantBUser); if (wxCouponCVo == null) { return new ResultData(ErrorCode.COUPON_IS_EMPTY); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java index 25d71a990..9cd01193e 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java @@ -11,6 +11,7 @@ import java.util.stream.Collectors; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxMiniappThemeValue; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumCouponType; import com.iformall.enums.EnumMerchantStatus; import com.iformall.utils.*; @@ -72,12 +73,14 @@ public class WxCouponController extends BaseController { @ApiOperation("根据id(couponChannel)查询详情接口") @GetMapping("/couponDetail") @ApiImplicitParams({ - @ApiImplicitParam(name = "couponChannelId", value = "couponChannelId", dataType = "String", paramType = "query", required = true)}) + @ApiImplicitParam(name = "couponChannelId", value = "couponChannelId", dataType = "String", paramType = "query", required = true), + @ApiImplicitParam(name = "mallTenantId", value = "mallTenantId", dataType = "String", paramType = "query", required = false)}) public ResultData couponDetail(String couponChannelId) { if ((StringUtils.isBlank(couponChannelId) || couponChannelId.equalsIgnoreCase(Constant.UNDEFINED)) ) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "couponChannelId为空"); } + Long couponChannelIdL = 0L; try { @@ -391,7 +394,8 @@ public class WxCouponController extends BaseController { //WxCouponCVo wxCouponCVo = wxCouponChannelService.findDetailVo(couponChannelIdL); WxCouponCVo wxCouponCVo = null; try { - wxCouponCVo = generateWxCouponCVoex(couponChannelIdL,couponIdL,getTenantInfo().getTenantId()); + TenantEntity tenantEntity = getTenantInfo(); + wxCouponCVo = generateWxCouponCVoex(couponChannelIdL,couponIdL,tenantEntity.getTenantId(),tenantEntity); } catch (IllegalAccessException e) { logger.error("coupon detail fail,copyproperties error" + couponChannelId,e); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "coupon detail fail,copyproperties error" + couponChannelId); @@ -527,13 +531,13 @@ public class WxCouponController extends BaseController { } - private WxCouponCVo generateWxCouponCVoex(Long couponChannelIdL,Long couponIdL,String tenantId) throws IllegalAccessException, InvocationTargetException { + private WxCouponCVo generateWxCouponCVoex(Long couponChannelIdL,Long couponIdL,String couponTenantId,TenantEntity mallTenantEntity) throws IllegalAccessException, InvocationTargetException { if(couponChannelIdL > 0l){ - WxCouponChannel cc = wxCouponChannelService.getById(couponChannelIdL,tenantId); + WxCouponChannel cc = wxCouponChannelService.getById(couponChannelIdL,couponTenantId); if(cc == null){ return null; } - WxCouponCVo wxcv = couponService.getVoById(cc.getCouponId(),tenantId); + WxCouponCVo wxcv = couponService.getVoById(cc.getCouponId(),couponTenantId,mallTenantEntity); if(wxcv == null){ return null; } @@ -552,7 +556,7 @@ public class WxCouponController extends BaseController { wxcv.setTtSpuId(cc.getTtSpuId()); return wxcv; }else if(couponIdL > 0l){ - WxCouponCVo wxcv = couponService.getVoById(couponIdL,tenantId); + WxCouponCVo wxcv = couponService.getVoById(couponIdL,couponTenantId,mallTenantEntity); return wxcv; } return null; diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index 1c61f0132..3e3d7e03a 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -119,7 +119,8 @@ public class WxCouponOrderController extends BaseController { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } - WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderService.simpleDetailCUserVo(couponOrderId,getTenantInfo()); + TenantEntity tenantEntity = getTenantInfo(); + WxCouponOrderCVo wxCouponOrderCVo = wxCouponOrderService.simpleDetailCUserVo(couponOrderId,tenantEntity); if (wxCouponOrderCVo == null) { return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); } @@ -144,7 +145,7 @@ public class WxCouponOrderController extends BaseController { return new ResultData(ErrorCode.COUPON_IS_EMPTY); } } else { - wxCouponCVo = wxCouponService.getVoById(wxCouponOrderCVo.getCouponId(),wxCouponOrderCVo.getTenantId()); + wxCouponCVo = wxCouponService.getVoById(wxCouponOrderCVo.getCouponId(),wxCouponOrderCVo.getTenantId(),tenantEntity); if (wxCouponCVo == null) { return new ResultData(ErrorCode.COUPON_IS_EMPTY); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java index b4d4d3249..7492605a7 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java @@ -6,6 +6,7 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.WxCUser; import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.WxOrderPress; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxCouponCVo; import com.iformall.enums.EnumOrderPressStatus; import com.iformall.enums.EnumOrderStatus; @@ -91,12 +92,15 @@ public class WxPressOrderController extends BaseController { ValueOperations operations = orderRedisTemplate.opsForValue(); // 缓存 boolean hasKey = orderRedisTemplate.hasKey(key); + + TenantEntity tenantEntity = getTenantInfo(); + if (hasKey) { // 从缓存获取砍价订单信息 order = operations.get(key); } else { // 订单没有入缓存,需要从数据库中读取 - order = wxOrderService.getById(orderId,getTenantInfo().getTenantId()); + order = wxOrderService.getById(orderId,tenantEntity.getTenantId()); if (order != null) { // 订单优化,进缓存 orderRedisTemplate.opsForValue().set(key, order, 3600, TimeUnit.SECONDS); @@ -117,7 +121,7 @@ public class WxPressOrderController extends BaseController { wxCouponCVo = cdOperations.get(cdKey); } else { // 券信息没有入缓存,需要从数据库中读取 - wxCouponCVo = wxCouponService.getVoById(order.getProductId(),order.getTenantId()); + wxCouponCVo = wxCouponService.getVoById(order.getProductId(),order.getTenantId(),tenantEntity); if (wxCouponCVo != null) { // 券详情优化,进缓存 couponCVoRedisTemplate.opsForValue().set(cdKey, wxCouponCVo, 3600, TimeUnit.SECONDS); diff --git a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index df5ed6b19..720c66d37 100644 --- a/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/mallinkCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -63,15 +63,29 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if(cUser == null || cUser.getExpireTime().getTime() < System.currentTimeMillis()){ throw new MallinkException(ErrorCode.NET_TOKEN_INVALID.getCode(), "URL:" + request.getRequestURL() + " token失效,请重新登录"); } - + + //集团版中针对某一商场的业务需要传递mallTenantId + String mallTenantId = request.getHeader("mallTenantId"); + if(StringUtils.isBlank(mallTenantId)){ + mallTenantId = request.getParameter("mallTenantId"); + } + + //设置userId到request里,后续根据userId,获取用户信息 request.setAttribute(Constant.LOGIN_USER_KEY, cUser.getId()); - request.setAttribute(Constant.TENANT_ID, cUser.getTenantId()); + + + if (!StringUtils.isBlank(mallTenantId)) { + request.setAttribute(Constant.TENANT_ID, mallTenantId); + request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getTenantId()); + }else { + request.setAttribute(Constant.TENANT_ID, cUser.getTenantId()); + if (StringUtils.isNotBlank(cUser.getParentTenantId())) { + request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getParentTenantId()); + } + } request.setAttribute(Constant.REQUEST_C_USER_KEY, cUser); request.setAttribute(Constant.APP_INFO,cUser.getAppinfo()); - if (StringUtils.isNotBlank(cUser.getParentTenantId())) { - request.setAttribute(Constant.PARENT_TENANT_ID, cUser.getParentTenantId()); - } if(cUser.basicInfoIs()){ request.setAttribute(Constant.LOGIN_MEMBER_KEY, cUser.getUserId()); } @@ -86,7 +100,11 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if(tenantIgnoreAnnotation != null){ TenantThreadLocal.remove(); }else { - TenantThreadLocal.setCurrentThreadTenant(cUser.getTenantId(), cUser.getParentTenantId()); + if (!StringUtils.isBlank(mallTenantId)) { + TenantThreadLocal.setCurrentThreadTenant(cUser.getTenantId(), cUser.getParentTenantId()); + }else { + TenantThreadLocal.setCurrentThreadTenant(mallTenantId, cUser.getTenantId()); + } } return true; diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java index 64057ed30..a71c617c8 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMallMapper.java @@ -13,6 +13,7 @@ import org.apache.ibatis.annotations.Param; public interface WxCouponMallMapper extends CommonMapper { List findList(WxCouponMall wxCouponMall); + List findCouponIdList(WxCouponMall wxCouponMall); void updateStatus(WxCouponMall wxCouponMall); void delteAllByProductId(WxCouponMall wxCouponMall); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java index 33ce2f7d2..64d4a47cc 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java @@ -125,4 +125,6 @@ public interface WxCouponMapper extends CommonMapper { List ttCouponList(TtCouponVo ttCouponVo); Integer findCategoryIdById(@Param("id")Long id,@Param("tenantId")String tenantId); + + void setMakeMerchantId(WxCoupon couponQ); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java index 29eeda8af..5fb18b377 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponMallService.java @@ -23,8 +23,9 @@ public interface WxCouponMallService { PageInfo listAsPage(WxCouponMall record, Integer pageIndex, Integer pageSize); List list(WxCouponMall wxCouponMall,boolean queryMall); + List listCouponIds(WxCouponMall wxCouponMall); - void finised(String tenantId,Long couponId,String mallTenantId); - void unfinised(String tenantId, Long couponId,Integer couponType, String mallTenantId) throws Exception; + void finised(String couponTenantId,Long couponId,String mallTenantId); + void unfinised(String couponTenantId, Long couponId,Integer couponType, String mallTenantId) throws Exception; } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index 8ce538c49..f4ee77673 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -81,7 +81,7 @@ public interface WxCouponService { WxCoupon getHtmlById(Long id,String tenantId); - WxCouponCVo getVoById(Long id,String tenantId); + WxCouponCVo getVoById(Long id,String couponTenantId,TenantEntity mallTenantEntity); WxCouponCVo getVoStatusById(Long id,String tenantId); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponMallServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponMallServiceImpl.java index c7ecfc6ed..b30f46510 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponMallServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponMallServiceImpl.java @@ -8,6 +8,7 @@ import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumAppPlat; import com.iformall.enums.EnumCouponChannelStatus; import com.iformall.enums.EnumCouponMallStatus; +import com.iformall.enums.EnumCouponMerchantStatus; import com.iformall.enums.EnumCouponType; import com.iformall.enums.EnumSpuSyncStatus; import com.iformall.exception.MallinkException; @@ -31,6 +32,8 @@ public class WxCouponMallServiceImpl implements WxCouponMallService { WxCouponChannelMapper wxCouponChannelMapper; @Autowired WxMallMapper wxMallMapper; + @Autowired + WxCouponMerchantMapper wxCouponMerchantMapper; @Override public List list(WxCouponMall wxCouponMall,boolean queryMall){ @@ -61,15 +64,30 @@ public class WxCouponMallServiceImpl implements WxCouponMallService { return list; } + @Override + public List listCouponIds(WxCouponMall wxCouponMall){ + return wxCouponMallMapper.findCouponIdList(wxCouponMall); + } + @Override public PageInfo listAsPage(WxCouponMall record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponMallMapper.findList(record)); } @Override - public void finised(String tenantId, Long couponId, String mallTenantId) { + public void finised(String couponTenantId, Long couponId, String mallTenantId) { + //查询商户设置了没有 + WxCouponMerchant cmParam = new WxCouponMerchant(); + cmParam.setTenantId(mallTenantId); + cmParam.setProductId(couponId); + cmParam.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode()); + List merchantList = wxCouponMerchantMapper.findList(cmParam); + if (null == merchantList || merchantList.size() <= 0 ) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"未设置有效商户"); + } + WxCouponMall couponMall = new WxCouponMall(); - couponMall.setTenantId(tenantId); + couponMall.setTenantId(couponTenantId); couponMall.setMallTenantId(mallTenantId); couponMall.setProductId(couponId); couponMall.setStatus(EnumCouponMallStatus.FINISED.getCode()); @@ -77,17 +95,17 @@ public class WxCouponMallServiceImpl implements WxCouponMallService { } @Override - public void unfinised(String tenantId, Long couponId,Integer couponType, String mallTenantId) throws Exception{ + public void unfinised(String couponTenantId, Long couponId,Integer couponType, String mallTenantId) throws Exception{ //抖音平台查询的是未提交抖音审核的,微信是未上架的 EnumAppPlat plat = EnumCouponType.getAppPlat(couponType); if (plat == EnumAppPlat.TOUTIAO) { - TtCouponChannelPoi poi = ttCouponChannelPoiMapper.selectById(tenantId, couponId); + TtCouponChannelPoi poi = ttCouponChannelPoiMapper.selectById(couponTenantId, couponId); if (null != poi &&( EnumSpuSyncStatus.isValid(poi.getLastStatus()))) { throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"券已在抖音审核流程中,无法修改。"); } }else if (plat == EnumAppPlat.WX) { WxCouponChannel couponChannel = new WxCouponChannel(); - couponChannel.setTenantId(tenantId); + couponChannel.setTenantId(couponTenantId); couponChannel.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); List clist = wxCouponChannelMapper.findList(couponChannel); if (null != clist && clist.size() > 0 ) { @@ -95,7 +113,7 @@ public class WxCouponMallServiceImpl implements WxCouponMallService { } } WxCouponMall couponMall = new WxCouponMall(); - couponMall.setTenantId(tenantId); + couponMall.setTenantId(couponTenantId); couponMall.setMallTenantId(mallTenantId); couponMall.setProductId(couponId); couponMall.setStatus(EnumCouponMallStatus.UNFINISED.getCode()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java index 77db55873..5a3449e1f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -353,15 +353,15 @@ public class WxCouponServiceImpl implements WxCouponService { } @Override - public WxCouponCVo getVoById(Long id,String tenantId) { - WxCouponCVo wxCouponCVo = wxCouponMapper.findVoDetail(id,tenantId); + public WxCouponCVo getVoById(Long id,String couponTenantId,TenantEntity mallTenantEntity) { + WxCouponCVo wxCouponCVo = wxCouponMapper.findVoDetail(id,couponTenantId); if(wxCouponCVo == null){ return null; } List couponIdList = new ArrayList(); couponIdList.add(wxCouponCVo.getId()); - Map> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIdList, wxCouponCVo,true); + Map> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIdList, mallTenantEntity,true); List merchantList = couponMerchantVoMap.get(wxCouponCVo.getId()); if (merchantList != null) { @@ -396,15 +396,20 @@ public class WxCouponServiceImpl implements WxCouponService { private Long parseMerchantId(JSONObject merchantParam){ - return Long.valueOf(merchantParam.getString("id")); + if (!StringUtils.isBlank(merchantParam.getString("id"))){ + return Long.valueOf(merchantParam.getString("id")); + } + return null; } private String parseParameter(JSONObject merchantParam){ return merchantParam.getString("parameter"); } private Integer parseBusiness(JSONObject merchantParam){ String businessIdStr = merchantParam.getString("businessId"); - return Integer.valueOf(businessIdStr); - + if ( !StringUtils.isBlank(businessIdStr)) { + return Integer.valueOf(businessIdStr); + } + return null; } private Integer parseSubBusiness(JSONObject merchantParam){ String subBusinessIdStr = merchantParam.getString("subBusinessId"); @@ -768,8 +773,11 @@ public class WxCouponServiceImpl implements WxCouponService { if (EnumPayMchType.DIRECT.equals(payMchType)) { WxMerchant makeMerchant = getDirectPayAccountMerchant(merchantList,record); + if (null == makeMerchant) { + throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "没有收款商户"); + } record.setMakeMerchantId(makeMerchant.getId()); - WxProfitSharingReceiver receiver = payShareServie.getReceiver(payAccount, makeMerchant.getId(), null, payMchType.getCode()); + WxProfitSharingReceiver receiver = payShareServie.getReceiver(makeMerchant, makeMerchant.getId(), null, payMchType.getCode()); if (receiver == null) { throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "[\""+makeMerchant.getName()+"\"]未配置收款账户"); @@ -811,7 +819,7 @@ public class WxCouponServiceImpl implements WxCouponService { WxMerchant makeMerchant = null; //平台券,集团商管商户 if (EnumCouponType.COUPON_DOUYIN_PLAT.getCode() == coupon.getType()) { - //TODO 查询集团商管商户 + //查询集团商管商户 makeMerchant = wxMerchantService.findAdmin(coupon); //品牌券,查询集团品牌商户 }else if (EnumCouponType.COUPON_DOUYIN_BRAND.getCode() == coupon.getType()) { @@ -1530,20 +1538,25 @@ public class WxCouponServiceImpl implements WxCouponService { if (null == wxCoupon.getMerchantIds()) { throw new MallinkException(Result.ERROR,"请选择商户"); } + Long makeMerchantId = coupon.getMakeMerchantId(); // - StringBuffer merchantParams = new StringBuffer("{\"tenantId\":").append(mallTenantEntity.getTenantId()).append(",\"mallMerchantParams\":").append("["); + StringBuffer merchantParams = new StringBuffer("[{\"tenantId\":").append(mallTenantEntity.getTenantId()).append(",\"mallMerchantParams\":").append("["); Long[] mids = wxCoupon.getMerchantIds(); for (int i = 0 ;i < mids.length; i++ ){ - merchantParams.append("{\"id\":").append(mids[i]).append("}"); + merchantParams.append("{\"id\":").append(mids[i]).append(",\"businessId\":").append(EnumBusiness.BUSINESS_ID6.getCode()).append("}"); if (i < mids.length-1 ) { merchantParams.append(","); } } - merchantParams.append("]"); + merchantParams.append("]}]"); coupon.setChildMerchantParams(merchantParams.toString()); checkCouponMerchantReceiver(coupon,true); final IdWorker idWorker = IdWorker.get(); updateCouponMerchants(coupon,idWorker); + //平台券设置商管商户 + if (null != coupon.getMakeMerchantId()) { + wxCouponMapper.setMakeMerchantId(coupon); + } }catch(Exception e) { throw e; } diff --git a/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml index 7ca9d1158..7b7e5e3f4 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMallMapper.xml @@ -77,6 +77,11 @@ + + update wx_coupon_mall set status = #{status} where `product_id` = #{productId} and `tenant_id` = #{tenantId} and `mall_tenant_id` = #{mallTenantId} diff --git a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml index 4ce873f6d..1ab55a626 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml @@ -1494,5 +1494,9 @@ where id = #{id} and tenant_id = #{tenantId} + + + update wx_coupon set make_merchant_id = #{makeMerchantId} where id = #{id} and tenant_id = #{tenantId} +