From 6e5efa22505153194467c9f6053d8a479c56ef5e Mon Sep 17 00:00:00 2001 From: winter Date: Fri, 21 Jan 2022 17:42:22 +0800 Subject: [PATCH] =?UTF-8?q?fix=20order=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxOrderController.java | 4 +- .../java/com/iformall/domain/po/WxOrder.java | 3 +- .../iformall/domain/vo/WxOrderCouponVo.java | 41 ++++++++++ .../com/iformall/mapper/WxCouponMapper.java | 2 + .../com/iformall/mapper/WxOrderMapper.java | 2 +- .../com/iformall/service/WxOrderService.java | 2 +- .../service/impl/WxOrderServiceImpl.java | 77 ++++++++++++++++++- .../mapper/WxCouponChannelMapper.xml | 2 +- .../main/resources/mapper/WxCouponMapper.xml | 13 +++- 9 files changed, 136 insertions(+), 10 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java index c8528b319..f7facf354 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java @@ -195,7 +195,8 @@ public class WxOrderController extends BaseController { } wxOrder.setCUserId(memberId); wxOrder.setSortColumns(BaseEntity.SortField.UpdateDate_DESC); - final PageInfo page = wxOrderService.listCUserVoAsPage(wxOrder, pageNum, pageSize); + wxOrder.updateTenantInfo(getTenantInfo()); + final PageInfo page = wxOrderService.listCUserVoAsPage(wxOrder, pageNum, pageSize,false); Date now = new Date(); page.getList().stream().forEach(oc->{ @@ -532,6 +533,7 @@ public class WxOrderController extends BaseController { } wxOrder.setCUserId(memberId); wxOrder.setSortColumns(BaseEntity.SortField.UpdateDate_DESC); + wxOrder.updateTenantInfo(getTenantInfo()); final PageInfo page = wxOrderService.listGoodsCAsPage(wxOrder, pageNum, pageSize); return new ResultData(page); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java index 4f39ac320..802b5d5c3 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java @@ -115,7 +115,8 @@ public class WxOrder extends TenantEntity { private Long parentOrderId; - + @TableField(exist = false) + protected List couponIds; @TableField(exist = false) protected List statusS; diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxOrderCouponVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxOrderCouponVo.java index 4ff756555..021ead555 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxOrderCouponVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxOrderCouponVo.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.iformall.common.SortColumn; import com.iformall.domain.po.WxCoupon; +import com.iformall.domain.po.WxOrder; import com.iformall.domain.po.base.TenantEntity; import lombok.Data; import lombok.EqualsAndHashCode; @@ -156,5 +157,45 @@ public class WxOrderCouponVo extends TenantEntity { @TableField(exist = false) private List giftCouponList; + + public void initByOrder(WxOrder o) { + this.id = o.getId(); + this.orderNumber = o.getOrderNumber(); + this.tenantId = o.getTenantId(); + this.parentTenantId = o.getParentTenantId(); + this.cUserId = o.getCUserId(); + this.couponChannelId = o.getCouponChannelId(); + this.productId = o.getProductId(); + this.paymentType = o.getPaymentType(); + this.payment = o.getPayment(); + this.paymentTime = o.getPaymentTime(); + this.orderStatus = o.getOrderStatus(); + this.createDate = o.getCreateDate(); + this.updateDate = o.getUpdateDate(); + this.composeOrderType = o.getComposeOrderType(); + this.composeOrderId = o.getComposeOrderId(); + this.couponNumber = o.getCouponNumber(); + this.freightPrice = o.getFreightPrice(); + this.shippingType = o.getShippingType(); + this.shippingAddress = o.getShippingAddress(); + this.parentOrderId = o.getParentOrderId(); + } + + public void initByCoupon(WxCoupon c) { + this.setType(c.getType()); + this.setCoverImg(c.getCoverImg()); + this.setTitle(c.getTitle()); + this.setSubTitle(c.getSubTitle()); + this.setSalePrice(c.getSalePrice()); + this.setUsePrice(c.getUsePrice()); + this.setPrice(c.getPrice()); + this.setTailPrice(c.getTailPrice()); + this.setOrigPrice(c.getOrigPrice()); + this.setUnit(c.getUnit()); + this.setValidStartDate(c.getValidStartDate()); + this.setValidEndDate(c.getValidEndDate()); + this.setPickStartDate(c.getPickStartDate()); + this.setPickEndDate(c.getPickEndDate()); + } } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java index bd1b8d0d2..7509079bf 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java @@ -113,4 +113,6 @@ public interface WxCouponMapper extends CommonMapper { * @return */ List newfindCList(WxCoupon couponQ); + + List findIdsListHasConditons(WxCoupon couponQ); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java index b80b2f94d..39920eacf 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java @@ -29,7 +29,7 @@ public interface WxOrderMapper extends CommonMapper { List findListOfUnpaidGroupOrderByDate(Map dateMap); - List findListOfCUser(WxOrder wxOrder); + List findListOfCUser(WxOrder wxOrder); List selectDetailOfCUser(WxOrder wxOrder); /** B端收银台(收款码支付) */ diff --git a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java index c7ffe5cbb..0b1cc1afe 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java @@ -157,7 +157,7 @@ public interface WxOrderService { - PageInfo listCUserVoAsPage(WxOrder record, Integer pageIndex, Integer pageSize); + PageInfo listCUserVoAsPage(WxOrder record, Integer pageIndex, Integer pageSize,boolean hasMerchant); WxOrderCouponVo detailCUserVo(WxOrder record); 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 ee12f686f..0c9fda1f5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -470,6 +470,13 @@ public class WxOrderServiceImpl implements WxOrderService { statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE_REFUND.getCode()); orderQ.setStatusS(statusS); + WxCoupon couponQ = new WxCoupon(); + couponQ.setTenantId(subTenantId); + List couponIds = wxCouponMapper.findIdsListHasConditons(couponQ); + if (null == couponIds || couponIds.size() <= 0 ) { + return 0; + } + orderQ.setCouponIds(couponIds); return wxOrderMapper.countCouponConditionType1(orderQ); } catch (Exception e) { logger.error("用户正在参加的新手活动, userId: " + cuserId + ", e:" + e.getMessage()); @@ -1830,8 +1837,67 @@ public class WxOrderServiceImpl implements WxOrderService { } @Override - public PageInfo listCUserVoAsPage(WxOrder record, Integer pageIndex, Integer pageSize) { - return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findListOfCUser(record)); + public PageInfo listCUserVoAsPage(WxOrder record, Integer pageIndex, Integer pageSize,boolean hasMerchant) { + PageInfo pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findListOfCUser(record)); + PageInfo retPageInfo = new PageInfo(); + retPageInfo.setPageNum(pageInfo.getPageNum()); + retPageInfo.setPageSize(pageInfo.getPageSize()); + retPageInfo.setPages(pageInfo.getPages()); + retPageInfo.setTotal(pageInfo.getTotal()); + retPageInfo.setList(toOrderCouponVoList(record,pageInfo.getList(),hasMerchant)); + return retPageInfo; + } + + private List toOrderCouponVoList(TenantEntity tenantEntity,List orderList,boolean hasMerchant) { + if (null == orderList || orderList.size() <=0 ) { + return null; + } + Map couponMap = new HashMap(); + List couponIds = new ArrayList(); + for (int i = 0 ; i < orderList.size() ; i ++) { + WxOrder o = orderList.get(i); + if (null != o && null != o.getProductId()) { + if (!couponIds.contains(o.getProductId())) { + couponIds.add(o.getProductId()); + } + } + } + if (couponIds.size() > 0 ) { + WxCoupon wxCouponQ = new WxCoupon(); + wxCouponQ.updateTenantInfo(tenantEntity); + wxCouponQ.setIds(couponIds); + List couponList = wxCouponMapper.findTenantSimpleList(wxCouponQ); + if (null != couponList) { + for (int i = 0 ; i < couponList.size() ; i ++) { + WxCoupon c = couponList.get(i); + if (null != c) { + couponMap.put(c.getId(), c); + } + } + } + } + List retList = new ArrayList(); + for (int i = 0 ; i < orderList.size() ; i ++) { + WxOrder o = orderList.get(i); + if (null != o ) { + WxOrderCouponVo vo = new WxOrderCouponVo(); + vo.initByOrder(o); + if (null != o.getProductId()) { + WxCoupon c = couponMap.get(o.getProductId()); + if (null != c) { + vo.initByCoupon(c); + } + if (hasMerchant) { + vo.setMerchantVoList(wxMerchantService.findMerchantListByProduct(tenantEntity, o.getProductId(), false)); + } + } + retList.add(vo); + } + } + if (retList.size() <=0 ) { + return null; + } + return retList; } @Override @@ -2657,14 +2723,17 @@ public class WxOrderServiceImpl implements WxOrderService { if(oc.getLevel().equals(1)){ record.setComposeOrderId(oc.getComposeOrderId()); record.setOrderStatus(oc.getOrderStatus()); - List orderCouponVoList = wxOrderMapper.findListOfCUser(record); + PageInfo pageInfo = listCUserVoAsPage(record,1,10000,false); + List orderCouponVoList = pageInfo.getList(); + + //查询子订单 oc.setOrderCouponVoList(orderCouponVoList); } }); return page; } - + private WxCoupon singleOrderCheck(OrderSaveDto orderSaveDto,int productCount,WxCUserBasicInfo wxCUserBasicInfo,EnumPayWay payWay,TenantEntity tenantEntity,int curindex,boolean singleProduct) { logger.info("OrderSave: " + orderSaveDto); String premsg = ""; diff --git a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml index ffcad12ca..641422cfa 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml @@ -179,7 +179,7 @@ diff --git a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml index f964c6704..6e3156c3c 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml @@ -324,7 +324,8 @@ + +