diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java index 5c1c758da..c13a71a87 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java @@ -542,5 +542,30 @@ public class WxOrderController extends BaseController { return new ResultData(page); } + @ApiOperation("分页订单列表接口") + @GetMapping("listGoods_v1") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true), + }) + public ResultData listGoodsV1(@ModelAttribute WxOrder wxOrder, Integer pageNum, Integer pageSize) { + // c端用户应该只能看到自己的订单 + if (wxOrder == null){ + wxOrder = new WxOrder(); + } + Long memberId; + try { + memberId = getMemberId(); + } catch (Exception e) { + return new ResultData(Result.ERROR,e.getMessage()); + } + wxOrder.setCUserId(memberId); + wxOrder.setSortColumns(BaseEntity.SortField.UpdateDate_DESC); + wxOrder.updateTenantInfo(getTenantInfo()); + final PageInfo page = wxOrderService.listBatchOrderAsPage(wxOrder, pageNum, pageSize); + + return new ResultData(page); + } + } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBatchOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBatchOrder.java index 0fdfcf4dc..d19117dcd 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBatchOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBatchOrder.java @@ -1,11 +1,14 @@ package com.iformall.domain.po; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.vo.WxOrderCouponVo; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; import java.util.Date; +import java.util.List; @TableName(value = "wx_batch_order") @Data @@ -32,4 +35,9 @@ public class WxBatchOrder extends TenantEntity { private Integer payVendor; @io.swagger.annotations.ApiModelProperty(value = "组合订单类型EnumComposeOrder", name = "orderType") private Integer orderType; + + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value = "订单集合", name = "orders") + private List orders; + } 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 802b5d5c3..e9cfbaf5e 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java @@ -104,6 +104,8 @@ public class WxOrder extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="组合订单编号",name="composeOrderId") private Long composeOrderId; + @TableField(exist = false) + protected List composeOrderIds; @io.swagger.annotations.ApiModelProperty(value="商品数量",name="couponNumber") private Integer couponNumber; diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java index e1eef0e18..9b1195d96 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java @@ -67,4 +67,6 @@ public interface WxOrderMapper extends CommonMapper { void updateOrderStatusForGroup(@Param("tenantId")String tenantId); void updateCUserId(WxOrder updateOrder); + + List getComposeOrderIds(WxOrder wxOrder); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java index 120d9c722..cc0694147 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java @@ -245,4 +245,5 @@ public interface WxOrderService { PageInfo listGoodsCAsPage(WxOrder wxOrder, Integer pageNum, Integer pageSize); + PageInfo listBatchOrderAsPage(WxOrder wxOrder, Integer pageNum, Integer pageSize); } 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 ee792fe7e..0aa29dda0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -3046,7 +3046,7 @@ public class WxOrderServiceImpl implements WxOrderService { public PageInfo listGoodsCAsPage(WxOrder record, Integer pageIndex, Integer pageSize) { // WxBatchOrder batchOrderQ = new WxBatchOrder(); // batchOrderQ.updateTenantInfo(record); -// batchOrderQ.setPayVendor(record.getPayVendor());; +// batchOrderQ.setPayVendor(record.getPayVendor()); // PageInfo page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxBatchOrderMapper.findCOrderList(batchOrderQ)); // page.getList().stream().forEach(oc->{ // record.setComposeOrderId(oc.getComposeOrderId()); @@ -3061,6 +3061,40 @@ public class WxOrderServiceImpl implements WxOrderService { // return page; return null; } + + @Override + public PageInfo listBatchOrderAsPage(WxOrder wxOrder, Integer pageNum, Integer pageSize) { + + WxBatchOrder batchOrderQ = new WxBatchOrder(); + batchOrderQ.updateTenantInfo(wxOrder); + batchOrderQ.setCUserId(wxOrder.getCUserId()); + batchOrderQ.setPayVendor(wxOrder.getPayVendor()); + List composeOrderIds = wxOrderMapper.getComposeOrderIds(wxOrder); + if(composeOrderIds == null || composeOrderIds.isEmpty()){ + batchOrderQ.setId(-999L); + }else{ + batchOrderQ.setIds(composeOrderIds); + } + PageInfo page = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxBatchOrderMapper.findCOrderList(batchOrderQ)); + List batchOrderIds = page.getList().stream().map(WxBatchOrder::getId).collect(Collectors.toList()); + if(batchOrderIds.size() > 0){ + Map> batchOrderMap = getBatchOrderMap(wxOrder,batchOrderIds); + page.getList().stream().forEach(oc->{ + oc.setOrders(batchOrderMap.get(oc.getId())); + }); + } + return page; + } + + private Map> getBatchOrderMap(TenantEntity tenantEntity,List batchOrderIds){ + WxOrder recordQ = new WxOrder(); + recordQ.updateTenantInfo(tenantEntity); + recordQ.setComposeOrderIds(batchOrderIds); + List listOfCUser = wxOrderMapper.findListOfCUser(recordQ); + List wxOrderCouponVos = toOrderCouponVoList(tenantEntity, listOfCUser, false); + Map> map = wxOrderCouponVos.stream().collect(Collectors.groupingBy(WxOrderCouponVo::getComposeOrderId)); + return map; + } // private List batchOderToOrderCouponVoList(List batchOrderList) { // if (null == batchOrderList || batchOrderList.size() <= 0 ) { // return null; diff --git a/mallinkService/src/main/resources/mapper/WxBatchOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxBatchOrderMapper.xml index 73cec40da..e5d86842d 100644 --- a/mallinkService/src/main/resources/mapper/WxBatchOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBatchOrderMapper.xml @@ -71,12 +71,19 @@ and o.`parent_tenant_id` = #{parentTenantId} - - AND o.order_status = #{orderStatus} + + and o.`id` = #{id} and o.pay_vendor = #{payVendor} + + and o.id in + + #{idItem} + + + order by o.create_date desc @@ -1118,5 +1124,23 @@ + +