From 7977407c492d17c982bf7d25946f22b59eec1cb1 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 26 Nov 2022 13:58:20 +0800 Subject: [PATCH 1/3] // --- .../controller/WxOrderController.java | 3 +- .../com/iformall/service/WxCouponService.java | 11 ++++- .../impl/WxCouponChannelServiceImpl.java | 40 +------------------ .../service/impl/WxCouponServiceImpl.java | 39 +++++++++++++++++- .../service/impl/WxOrderServiceImpl.java | 4 +- 5 files changed, 53 insertions(+), 44 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java index 5d84c9747..2378c58e3 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java @@ -140,7 +140,8 @@ public class WxOrderController extends BaseController { } return wxOrderService.composeSaveOrder(false,EnumComposeOrder.ONE_NUMBER_ORDER_BATCH,orderSaveDto,memberId,getPayWay(),getTenantInfo(),this.getPayVersion()); } - + + @TenantIgnore @ApiOperation(value = "单个券单个订单,卡(分账导致无法批量下单)、拼团,砍价用", notes = "{\"couponChannelId\":\"String\",\"couponId\":\"String\",\"press\":\"String\",\"orderGroupId\":\"String\",\"formId\":\"String\"}") @PostMapping("save") public ResultData saveOrder(@RequestBody OrderSaveDto orderSaveDto) { diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index f4ee77673..3ff870081 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -290,5 +290,14 @@ public interface WxCouponService { void setParentCouponMallMerchants(TenantEntity mallTenantEntity,WxCoupon wxCoupon) throws Exception; - Map couponMerchantAutoShare(TenantEntity tenantEntity,WxCoupon wxCoupon) throws Exception; + Map couponMerchantAutoShare(TenantEntity tenantEntity,WxCoupon wxCoupon) throws Exception; + + /** + * 判断门店商户是否可用 + * @param couponId + * @param couponType + * @param couponTenantEntity + * @return + */ + boolean isCouponMerchantValid(Long couponId,Integer couponType,TenantEntity couponTenantEntity); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java index 3904f093c..77d9bbb66 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -596,44 +596,6 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { } return retList; } - - - - private boolean isCouponMerchantValid(Long couponId,Integer couponType,TenantEntity couponTenantEntity) { - if (EnumCouponType.isParentCoupon(couponType)) { - WxCouponMall couponMall = new WxCouponMall(); - couponMall.updateTenantInfo(couponTenantEntity); - couponMall.setProductId(couponId); - couponMall.setStatus(EnumCouponMallStatus.FINISED.getCode()) ; - List couponMallList = wxCouponMallMapper.findList(couponMall); - if (null == couponMallList ) { - return false; - } - for (int i = 0 ; i < couponMallList.size(); i++) { - WxCouponMall wcm = couponMallList.get(i); - TenantEntity mallTenantEntity = new TenantEntity(); - mallTenantEntity.setTenantId(wcm.getMallTenantId()); - mallTenantEntity.setParentTenantId(couponTenantEntity.getTenantId()); - List merchantVoList = wxMerchantService.findMerchantListByProduct(mallTenantEntity,couponId,false); - if (null != merchantVoList && merchantVoList.size() > 0 ) { - if (merchantVoList.stream().anyMatch((cm->cm.getMerchantStatus().equals(EnumMerchantStatus.VALID.getCode())))){ - return true; - } - } - } - return false; - - }else { - List merchantVoList = wxMerchantService.findMerchantListByProduct(couponTenantEntity,couponId,false); - if (null == merchantVoList || merchantVoList.size() <=0 ) { - return false; - } - if (merchantVoList.stream().anyMatch((cm->cm.getMerchantStatus().equals(EnumMerchantStatus.VALID.getCode())))){ - return true; - } - } - return false; - } @Override public WxCouponChannelAddVo addCouponChannel(Long couponid,Integer channelId, TenantEntity tenantEntity,Date showBeginTime,Date beginTime,Date endTime,Integer channelPrice,Integer channelStock){ @@ -684,7 +646,7 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { } if(!EnumCouponType.COUPON_GIFT.getCode().equals(wxCoupon.getType()) - && !isCouponMerchantValid(wxCoupon.getId(),wxCoupon.getType(),wxCoupon)) { + && !wxCouponService.isCouponMerchantValid(wxCoupon.getId(),wxCoupon.getType(),wxCoupon)) { logger.debug(wxCoupon.getId()+couponid+ErrorCode.MERCHANT_INFO_NOT_FOUND.getMessage()); vo.toCouponChannnelVo(wxCoupon,channelId); vo.setErrorMsg(ErrorCode.MERCHANT_INFO_NOT_FOUND.getMessage()); 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 fb8211348..508990c68 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -1684,6 +1684,43 @@ public class WxCouponServiceImpl implements WxCouponService { } } } - + + @Override + public boolean isCouponMerchantValid(Long couponId, Integer couponType, TenantEntity couponTenantEntity) { + if (EnumCouponType.isParentCoupon(couponType)) { + WxCouponMall couponMall = new WxCouponMall(); + couponMall.updateTenantInfo(couponTenantEntity); + couponMall.setProductId(couponId); + couponMall.setStatus(EnumCouponMallStatus.FINISED.getCode()) ; + List couponMallList = wxCouponMallMapper.findList(couponMall); + if (null == couponMallList ) { + return false; + } + for (int i = 0 ; i < couponMallList.size(); i++) { + WxCouponMall wcm = couponMallList.get(i); + TenantEntity mallTenantEntity = new TenantEntity(); + mallTenantEntity.setTenantId(wcm.getMallTenantId()); + mallTenantEntity.setParentTenantId(couponTenantEntity.getTenantId()); + List merchantVoList = wxMerchantService.findMerchantListByProduct(mallTenantEntity,couponId,false); + if (null != merchantVoList && merchantVoList.size() > 0 ) { + if (merchantVoList.stream().anyMatch((cm->cm.getMerchantStatus().equals(EnumMerchantStatus.VALID.getCode())))){ + return true; + } + } + } + return false; + + }else { + List merchantVoList = wxMerchantService.findMerchantListByProduct(couponTenantEntity,couponId,false); + if (null == merchantVoList || merchantVoList.size() <=0 ) { + return false; + } + if (merchantVoList.stream().anyMatch((cm->cm.getMerchantStatus().equals(EnumMerchantStatus.VALID.getCode())))){ + return true; + } + } + return false; + } + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 1aef31fd1..766489fbc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -3235,8 +3235,8 @@ public class WxOrderServiceImpl implements WxOrderService { throw new MallinkException(ErrorCode.COUPON_IS_EMPTY.getCode(),premsg+"不存在"); } if (EnumCouponType.mustHasMerchant(coupon.getType())) { - // 检查券商户信息 - if (!isCouponMerchantValid(coupon.getId(),coupon)) { + // 检查券商户信息isCouponMerchantValid + if (!wxCouponService.isCouponMerchantValid(coupon.getId(),coupon.getType(),coupon)) { throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),premsg+"商户信息没找到"); } } From 3c350e94061062dc88c87e433084955adb5ff2a4 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 26 Nov 2022 15:08:40 +0800 Subject: [PATCH 2/3] // --- .../service/pay/douyin/v1/BaseTtPayAdapterService.java | 10 ++++++---- .../douyin/v1/miniApp/TtMiniAppPayAdapterService.java | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/BaseTtPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/BaseTtPayAdapterService.java index 7445ca7c1..9ec9d9363 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/BaseTtPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/BaseTtPayAdapterService.java @@ -12,6 +12,7 @@ import com.iformall.douyin.pay.orderQuery.OrderQueryResult; import com.iformall.douyin.payv2.result.TtPayOrderQueryV2Result; import com.iformall.enums.EnumPayStatus; import com.iformall.exception.MallinkException; +import com.iformall.service.order.entity.WxComposeOrder; import com.iformall.service.pay.service.pay.entity.PayAdapterResult; import com.iformall.service.pay.service.pay.entity.PayQueryAdapterResult; import com.iformall.utils.MaUtil; @@ -33,12 +34,13 @@ public class BaseTtPayAdapterService { /** * 做为支付的扩展数据 - * @param payOrder + * @param * @return */ - protected String getCpExtra(WxPayOrder payOrder) { - Map map = new HashMap<>(); - map.put("tenantId",payOrder.getTenantId()); + protected String getCallbackData(WxPayOrder record) { + Map map = new HashMap<>(); + map.put("composeOrderId",record.getOrderId()); + map.put("tenantId",record.getTenantId()); return JSON.toJSONString(map); } diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java index 6fb2f5038..0b098b6c4 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v1/miniApp/TtMiniAppPayAdapterService.java @@ -138,7 +138,7 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen pageEntry.setParams(JSON.toJSONString(paramMap)); request.setOrderEntrySchema(pageEntry); - request.setCpExtra(getCpExtra(record)); + request.setCpExtra(getCallbackData(record)); TtPayUnifiedOrderV2Result orderV2 = ttPayService.createOrderV2(request); @@ -454,7 +454,7 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen map.put("outOrderNo",record.getOrderId()); map.put("createPay",record.isCreatPay()); if(record.isCreatPay()){ - map.put("callbackData",JSONObject.parseObject(getCpExtra(record),Map.class)); + map.put("callbackData",JSONObject.parseObject(getCallbackData(record),Map.class)); Map payment = new HashMap(); payment.put("totalAmount",composeOrder.getPayment()); map.put("payment",payment); From 2975f73e6a2d68e07c6229e0accbd529216ffbe3 Mon Sep 17 00:00:00 2001 From: xhxu Date: Sat, 26 Nov 2022 16:02:37 +0800 Subject: [PATCH 3/3] // --- .../impl/TtCouponGoodsServiceImpl.java | 8 +++++++ .../service/impl/WxCouponServiceImpl.java | 22 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java index 256f1790e..3c16897fe 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtCouponGoodsServiceImpl.java @@ -161,6 +161,14 @@ public class TtCouponGoodsServiceImpl implements TtCouponGoodsService { @Override @Transactional(isolation=Isolation.SERIALIZABLE, propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) public ResultData productSave(WxCoupon coupon) throws Exception { + TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(coupon.getTenantId(),coupon.getId()); + if(ttCouponChannelPoi != null && + (EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_put_on.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_disable.getCode().equals(ttCouponChannelPoi.getLastStatus()))){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"该券状态不允许提交审核"); + } + WxCoupon ttattrs = wxCouponService.getAttrsById(coupon.getId(), coupon.getTenantId()); if(ttattrs.getProductType() == null || ttattrs.getCategoryId() == null || ttattrs.getProductAttrKeyValueMap().isEmpty() 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 508990c68..84069a902 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -147,6 +147,9 @@ public class WxCouponServiceImpl implements WxCouponService { @Autowired PayServiceFactory payServiceFactory; + + @Autowired + TtCouponChannelPoiMapper ttCouponChannelPoiMapper; @Autowired WxCouponMallMapper wxCouponMallMapper; @@ -587,6 +590,15 @@ public class WxCouponServiceImpl implements WxCouponService { wxCouponMapper.insert(record); } else { + if(EnumCouponType.getDouYinType().contains(record.getType())){ + TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(record.getTenantId(),record.getId()); + if(ttCouponChannelPoi != null && + (EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_put_on.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_disable.getCode().equals(ttCouponChannelPoi.getLastStatus()))){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"该券状态不允许修改"); + } + } if(record.getInventory() != null && record.getRemainInventory() != null) { // 库存修改检查 @@ -905,6 +917,16 @@ public class WxCouponServiceImpl implements WxCouponService { @Override public ResultData updateTtProduct(WxCoupon record) { + if(EnumCouponType.getDouYinType().contains(record.getType())){ + TtCouponChannelPoi ttCouponChannelPoi = ttCouponChannelPoiMapper.selectById(record.getTenantId(),record.getId()); + if(ttCouponChannelPoi != null && + (EnumSpuSyncStatus.sync_auditing.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_put_on.getCode().equals(ttCouponChannelPoi.getLastStatus()) + || EnumSpuSyncStatus.sync_audit_disable.getCode().equals(ttCouponChannelPoi.getLastStatus()))){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"该券状态不允许修改"); + } + } + if(StringUtils.isBlank(record.getProductAttrs()) || StringUtils.isBlank(record.getSkuAttrs())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); }