From 78e0d8ed51a44479ae54035956f346150284b24e Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 15 Feb 2022 12:24:03 +0800 Subject: [PATCH 1/2] fix bug --- .../controller/market/WxOrderController.java | 7 ++++++- .../controller/WxCouponPasswordController.java | 7 ++++++- .../service/impl/WxOrderServiceImpl.java | 16 ++-------------- .../service/order/OrderAdapterService.java | 2 ++ .../order/impl/SingleOrderAdapterService.java | 9 +++++++++ .../impl/batch/BaseBatchOrderAdapterService.java | 15 ++++++++++----- .../batch/CouponPackageOrderAdapterService.java | 9 +++++++++ ...tyNumberOneOrderBatchOrderAdapterService.java | 12 ++++++++++++ ...neNumberOneOrderBatchOrderAdapterService.java | 12 ++++++++++++ 9 files changed, 68 insertions(+), 21 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java index 2822316d3..dcb341c07 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOrderController.java @@ -23,6 +23,7 @@ import com.iformall.service.WxCouponChannelService; import com.iformall.service.WxCouponService; import com.iformall.service.WxOrderService; import com.iformall.service.order.OrderFactory; +import com.iformall.service.order.entity.WxComposeOrder; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -62,6 +63,9 @@ public class WxOrderController extends BaseController { @Autowired private WxCUserBasicInfoService wxCUserBasicInfoService; + @Autowired + OrderFactory orderFactory; + @ApiOperation("分页列表接口") @GetMapping("list") @ApiImplicitParams({ @@ -187,7 +191,8 @@ public class WxOrderController extends BaseController { return new ResultData(ErrorCode.COUPON_IS_NOT_FREE); } // 免费券 - order = wxOrderService.saveFreeOrderForCoupon(false,null,user, coupon, 1, + WxComposeOrder composeOrder = orderFactory.getOrderAdapterService(EnumComposeOrder.SINGLE.getCode()).createDBMainOrder(coupon, user, 0, EnumPayWay.PAY_WAY_NOT_UNPAY_CREDIT); + order = wxOrderService.saveFreeOrderForCoupon(false,composeOrder,user, coupon, 1, orderSaveDto.getCouponChannelId(), orderSaveDto.getFormId(), null,EnumPayWay.PAY_WAY_NOT_UNPAY_CREDIT, EnumOrderShopingType.ONLINE_PURCHASE.getCode(),null); return new ResultData(order); diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java index 89c1b2e97..742b08a3e 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponPasswordController.java @@ -8,6 +8,7 @@ import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.service.*; import com.iformall.service.order.OrderFactory; +import com.iformall.service.order.entity.WxComposeOrder; import com.iformall.utils.Constant; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -38,6 +39,9 @@ public class WxCouponPasswordController extends BaseController { @Autowired private WxCUserBasicInfoService userService; + @Autowired + OrderFactory orderFactory; + @ApiOperation(value = "根据卡密领卡", notes = "{\"password\":\"String\",\"formId\":\"String\"}") @PostMapping("getCouponOrderByPassword") public ResultData getCouponOrderByPassword(@RequestBody Map params) { @@ -97,7 +101,8 @@ public class WxCouponPasswordController extends BaseController { // 3. 领取free coupon try { - WxOrder order = orderService.saveFreeOrderForCoupon(false,null,member, coupon, 1, + WxComposeOrder composeOrder = orderFactory.getOrderAdapterService(EnumComposeOrder.SINGLE.getCode()).createDBMainOrder(coupon, member, 0, payWay); + WxOrder order = orderService.saveFreeOrderForCoupon(false,composeOrder,member, coupon, 1, null, formId, couponPassword.getId(),payWay, EnumOrderShopingType.ONLINE_PURCHASE.getCode(),null); } catch (MallinkException e) { 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 e9f8b9a0f..55437d41b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -2619,22 +2619,10 @@ public class WxOrderServiceImpl implements WxOrderService { if(EnumOrderShopingType.DISTRIBUTION.getCode().equals(shippingType)){ record.setShippingAddress(JSON.toJSONString(address)); } - if (null != composeOrder) { - record.setComposeOrderId(composeOrder.getMainOrderId()); - //if (EnumComposeOrder.childOrderIsSingle(composeOrder.getComposeOrderType())) { - // record.setComposeOrderType(EnumComposeOrder.SINGLE.getCode()); - //}else { - record.setComposeOrderType(composeOrder.getComposeOrderType()); - //} - }else { - record.setComposeOrderType(EnumComposeOrder.SINGLE.getCode()); - record.setComposeOrderId(0L); - } + record.setComposeOrderId(composeOrder.getMainOrderId()); + record.setComposeOrderType(composeOrder.getComposeOrderType()); record.setCouponNumber(couponNumber); try { - if(EnumComposeOrder.isSingle(composeOrder.getComposeOrderType())) { - record.setId(composeOrder.getMainOrderId()); - } proxy.saveFreeOrder(record, user, coupon); } catch (Exception e) { logger.error("下订单错误:" + e.getMessage(),e); diff --git a/mallinkService/src/main/java/com/iformall/service/order/OrderAdapterService.java b/mallinkService/src/main/java/com/iformall/service/order/OrderAdapterService.java index bb2dcbe27..024b9367d 100644 --- a/mallinkService/src/main/java/com/iformall/service/order/OrderAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/order/OrderAdapterService.java @@ -17,6 +17,8 @@ public interface OrderAdapterService { */ WxComposeOrder createDBMainOrder(TenantEntity tenantEntity,WxCUserBasicInfo user,List orderSave,EnumPayWay payWay); + WxComposeOrder createDBMainOrder(TenantEntity tenantEntity,WxCUserBasicInfo user,int payment,EnumPayWay payWay); + /** * 获取支付时商品名称,供服务商API使用 * @param lastCoupon diff --git a/mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java b/mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java index 7bf45a800..1d8098c2e 100644 --- a/mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/order/impl/SingleOrderAdapterService.java @@ -44,6 +44,13 @@ public class SingleOrderAdapterService extends BaseBatchOrderAdapterService { return super.createDBMainOrder(tenantEntity,user, orderSave, payWay, EnumComposeOrder.SINGLE); } + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + @Override + public WxComposeOrder createDBMainOrder(TenantEntity tenantEntity, WxCUserBasicInfo user, int payment, + EnumPayWay payWay) { + return super.createDBMainOrder(tenantEntity,user, payment, payWay, EnumComposeOrder.SINGLE); + } + @Override public boolean isOneNumberOneOrder() { return true; @@ -81,4 +88,6 @@ public class SingleOrderAdapterService extends BaseBatchOrderAdapterService { return lastCoupon.getTitle(); } + + } diff --git a/mallinkService/src/main/java/com/iformall/service/order/impl/batch/BaseBatchOrderAdapterService.java b/mallinkService/src/main/java/com/iformall/service/order/impl/batch/BaseBatchOrderAdapterService.java index be70d5739..de7c6042f 100644 --- a/mallinkService/src/main/java/com/iformall/service/order/impl/batch/BaseBatchOrderAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/order/impl/batch/BaseBatchOrderAdapterService.java @@ -61,11 +61,6 @@ public abstract class BaseBatchOrderAdapterService implements OrderAdapterServic @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) protected WxComposeOrder createDBMainOrder(TenantEntity tenantEntity,WxCUserBasicInfo user,List orderSave,EnumPayWay payWay,EnumComposeOrder composeOrderType) { - WxBatchOrder order =new WxBatchOrder(); - final IdWorker idWorker = IdWorker.get(); - order.setId(idWorker.nextId()); - order.setCUserId(user.getId()); - order.updateTenantInfo(tenantEntity); int payment = 0; for (OrderComposeSaveDto ocsd : orderSave) { boolean isPress = ocsd.getSignleOrder().isPressOrder(); @@ -73,6 +68,16 @@ public abstract class BaseBatchOrderAdapterService implements OrderAdapterServic payment = payment+price.getRealPayMent(); } + return createDBMainOrder(tenantEntity, user, payment, payWay, composeOrderType); + } + + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + protected WxComposeOrder createDBMainOrder(TenantEntity tenantEntity,WxCUserBasicInfo user,int payment,EnumPayWay payWay,EnumComposeOrder composeOrderType) { + WxBatchOrder order =new WxBatchOrder(); + final IdWorker idWorker = IdWorker.get(); + order.setId(idWorker.nextId()); + order.setCUserId(user.getId()); + order.updateTenantInfo(tenantEntity); order.setPayment(payment); order.setPayVendor(payWay.getCode()); order.setOrderType(composeOrderType.getCode()); diff --git a/mallinkService/src/main/java/com/iformall/service/order/impl/batch/CouponPackageOrderAdapterService.java b/mallinkService/src/main/java/com/iformall/service/order/impl/batch/CouponPackageOrderAdapterService.java index 038f55b3c..d24d80431 100644 --- a/mallinkService/src/main/java/com/iformall/service/order/impl/batch/CouponPackageOrderAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/order/impl/batch/CouponPackageOrderAdapterService.java @@ -33,6 +33,13 @@ public class CouponPackageOrderAdapterService extends BaseBatchOrderAdapterServi public WxComposeOrder createDBMainOrder(TenantEntity tenantEntity,WxCUserBasicInfo user,List orderSave,EnumPayWay payWay) { return super.createDBMainOrder(tenantEntity,user, orderSave, payWay, EnumComposeOrder.PACKAGECOUPON); } + + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + @Override + public WxComposeOrder createDBMainOrder(TenantEntity tenantEntity, WxCUserBasicInfo user, int payment, + EnumPayWay payWay) { + return super.createDBMainOrder(tenantEntity, user, payment, payWay, EnumComposeOrder.PACKAGECOUPON); + } @Override public WxComposeOrder getComposeOrder(Long mainOrderId, String tenantId) { @@ -66,4 +73,6 @@ public class CouponPackageOrderAdapterService extends BaseBatchOrderAdapterServi return "[券包]"+lastCoupon.getTitle(); } + + } diff --git a/mallinkService/src/main/java/com/iformall/service/order/impl/batch/MulityNumberOneOrderBatchOrderAdapterService.java b/mallinkService/src/main/java/com/iformall/service/order/impl/batch/MulityNumberOneOrderBatchOrderAdapterService.java index 271fd0384..aba1f282d 100644 --- a/mallinkService/src/main/java/com/iformall/service/order/impl/batch/MulityNumberOneOrderBatchOrderAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/order/impl/batch/MulityNumberOneOrderBatchOrderAdapterService.java @@ -7,6 +7,8 @@ import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import com.iformall.domain.dto.OrderComposeSaveDto; import com.iformall.enums.EnumComposeOrder; @@ -26,11 +28,19 @@ public class MulityNumberOneOrderBatchOrderAdapterService extends BaseBatchOrder return false; } + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Override public WxComposeOrder createDBMainOrder(TenantEntity tenantEntity,WxCUserBasicInfo user, List orderSave, EnumPayWay payWay) { return super.createDBMainOrder(tenantEntity,user, orderSave, payWay, EnumComposeOrder.MULITY_NUMBER_ORDER_BATCH); } + + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + @Override + public WxComposeOrder createDBMainOrder(TenantEntity tenantEntity, WxCUserBasicInfo user, int payment, + EnumPayWay payWay) { + return super.createDBMainOrder(tenantEntity,user, payment, payWay, EnumComposeOrder.MULITY_NUMBER_ORDER_BATCH); + } @Override public WxComposeOrder getComposeOrder(Long mainOrderId, String tenantId) { @@ -50,5 +60,7 @@ public class MulityNumberOneOrderBatchOrderAdapterService extends BaseBatchOrder public String getPayProductName(WxCoupon lastCoupon) { return "批量支付商品"; } + + } diff --git a/mallinkService/src/main/java/com/iformall/service/order/impl/batch/OneNumberOneOrderBatchOrderAdapterService.java b/mallinkService/src/main/java/com/iformall/service/order/impl/batch/OneNumberOneOrderBatchOrderAdapterService.java index d46527a16..ee52e406c 100644 --- a/mallinkService/src/main/java/com/iformall/service/order/impl/batch/OneNumberOneOrderBatchOrderAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/order/impl/batch/OneNumberOneOrderBatchOrderAdapterService.java @@ -6,6 +6,8 @@ import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import com.iformall.domain.dto.OrderComposeSaveDto; import com.iformall.enums.EnumComposeOrder; @@ -25,11 +27,19 @@ public class OneNumberOneOrderBatchOrderAdapterService extends BaseBatchOrderAda return true; } + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Override public WxComposeOrder createDBMainOrder(TenantEntity tenantEntity,WxCUserBasicInfo user, List orderSave, EnumPayWay payWay) { return super.createDBMainOrder(tenantEntity,user, orderSave, payWay, EnumComposeOrder.ONE_NUMBER_ORDER_BATCH); } + + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + @Override + public WxComposeOrder createDBMainOrder(TenantEntity tenantEntity, WxCUserBasicInfo user, int payment, + EnumPayWay payWay) { + return super.createDBMainOrder(tenantEntity,user, payment, payWay, EnumComposeOrder.ONE_NUMBER_ORDER_BATCH); + } @Override public WxComposeOrder getComposeOrder(Long mainOrderId, String tenantId) { @@ -50,5 +60,7 @@ public class OneNumberOneOrderBatchOrderAdapterService extends BaseBatchOrderAda public String getPayProductName(WxCoupon lastCoupon) { return "批量支付商品"; } + + } From 4a4d8bbca3c971a873857e584c77f645950dd8a3 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 15 Feb 2022 12:28:53 +0800 Subject: [PATCH 2/2] fix bug --- .../main/java/com/iformall/controller/WxMicroPayController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java index fb7e00639..0721eb50b 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java @@ -365,6 +365,7 @@ public class WxMicroPayController extends BaseController { if (order != null) { Map orderMap = new HashMap(); orderMap.put("id", order.getId()); + orderMap.put("composeOrderId", order.getComposeOrderId()); orderMap.put("payment", order.getPayment()); retMap.put("order", orderMap); }