| @@ -542,5 +542,30 @@ public class WxOrderController extends BaseController { | |||||
| return new ResultData(page); | 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<WxBatchOrder> page = wxOrderService.listBatchOrderAsPage(wxOrder, pageNum, pageSize); | |||||
| return new ResultData(page); | |||||
| } | |||||
| } | } | ||||
| @@ -1,11 +1,14 @@ | |||||
| package com.iformall.domain.po; | package com.iformall.domain.po; | ||||
| import com.baomidou.mybatisplus.annotation.TableField; | |||||
| import com.baomidou.mybatisplus.annotation.TableName; | import com.baomidou.mybatisplus.annotation.TableName; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.domain.vo.WxOrderCouponVo; | |||||
| import lombok.Data; | import lombok.Data; | ||||
| import lombok.EqualsAndHashCode; | import lombok.EqualsAndHashCode; | ||||
| import lombok.ToString; | import lombok.ToString; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.List; | |||||
| @TableName(value = "wx_batch_order") | @TableName(value = "wx_batch_order") | ||||
| @Data | @Data | ||||
| @@ -32,4 +35,9 @@ public class WxBatchOrder extends TenantEntity { | |||||
| private Integer payVendor; | private Integer payVendor; | ||||
| @io.swagger.annotations.ApiModelProperty(value = "组合订单类型EnumComposeOrder", name = "orderType") | @io.swagger.annotations.ApiModelProperty(value = "组合订单类型EnumComposeOrder", name = "orderType") | ||||
| private Integer orderType; | private Integer orderType; | ||||
| @TableField(exist = false) | |||||
| @io.swagger.annotations.ApiModelProperty(value = "订单集合", name = "orders") | |||||
| private List<WxOrderCouponVo> orders; | |||||
| } | } | ||||
| @@ -104,6 +104,8 @@ public class WxOrder extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value="组合订单编号",name="composeOrderId") | @io.swagger.annotations.ApiModelProperty(value="组合订单编号",name="composeOrderId") | ||||
| private Long composeOrderId; | private Long composeOrderId; | ||||
| @TableField(exist = false) | |||||
| protected List<Long> composeOrderIds; | |||||
| @io.swagger.annotations.ApiModelProperty(value="商品数量",name="couponNumber") | @io.swagger.annotations.ApiModelProperty(value="商品数量",name="couponNumber") | ||||
| private Integer couponNumber; | private Integer couponNumber; | ||||
| @@ -67,4 +67,6 @@ public interface WxOrderMapper extends CommonMapper<WxOrder, Long> { | |||||
| void updateOrderStatusForGroup(@Param("tenantId")String tenantId); | void updateOrderStatusForGroup(@Param("tenantId")String tenantId); | ||||
| void updateCUserId(WxOrder updateOrder); | void updateCUserId(WxOrder updateOrder); | ||||
| List<Long> getComposeOrderIds(WxOrder wxOrder); | |||||
| } | } | ||||
| @@ -245,4 +245,5 @@ public interface WxOrderService { | |||||
| PageInfo<WxOrderCouponVo> listGoodsCAsPage(WxOrder wxOrder, Integer pageNum, Integer pageSize); | PageInfo<WxOrderCouponVo> listGoodsCAsPage(WxOrder wxOrder, Integer pageNum, Integer pageSize); | ||||
| PageInfo<WxBatchOrder> listBatchOrderAsPage(WxOrder wxOrder, Integer pageNum, Integer pageSize); | |||||
| } | } | ||||
| @@ -2793,7 +2793,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| public PageInfo<WxOrderCouponVo> listGoodsCAsPage(WxOrder record, Integer pageIndex, Integer pageSize) { | public PageInfo<WxOrderCouponVo> listGoodsCAsPage(WxOrder record, Integer pageIndex, Integer pageSize) { | ||||
| // WxBatchOrder batchOrderQ = new WxBatchOrder(); | // WxBatchOrder batchOrderQ = new WxBatchOrder(); | ||||
| // batchOrderQ.updateTenantInfo(record); | // batchOrderQ.updateTenantInfo(record); | ||||
| // batchOrderQ.setPayVendor(record.getPayVendor());; | |||||
| // batchOrderQ.setPayVendor(record.getPayVendor()); | |||||
| // PageInfo<WxBatchOrder> page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxBatchOrderMapper.findCOrderList(batchOrderQ)); | // PageInfo<WxBatchOrder> page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxBatchOrderMapper.findCOrderList(batchOrderQ)); | ||||
| // page.getList().stream().forEach(oc->{ | // page.getList().stream().forEach(oc->{ | ||||
| // record.setComposeOrderId(oc.getComposeOrderId()); | // record.setComposeOrderId(oc.getComposeOrderId()); | ||||
| @@ -2808,6 +2808,40 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| // return page; | // return page; | ||||
| return null; | return null; | ||||
| } | } | ||||
| @Override | |||||
| public PageInfo<WxBatchOrder> listBatchOrderAsPage(WxOrder wxOrder, Integer pageNum, Integer pageSize) { | |||||
| WxBatchOrder batchOrderQ = new WxBatchOrder(); | |||||
| batchOrderQ.updateTenantInfo(wxOrder); | |||||
| batchOrderQ.setCUserId(wxOrder.getCUserId()); | |||||
| batchOrderQ.setPayVendor(wxOrder.getPayVendor()); | |||||
| if(wxOrder.getOrderStatus() != null){ | |||||
| List<Long> composeOrderIds = wxOrderMapper.getComposeOrderIds(wxOrder); | |||||
| if(composeOrderIds != null && composeOrderIds.size() > 0){ | |||||
| batchOrderQ.setIds(composeOrderIds); | |||||
| } | |||||
| } | |||||
| PageInfo<WxBatchOrder> page = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxBatchOrderMapper.findCOrderList(batchOrderQ)); | |||||
| List<Long> batchOrderIds = page.getList().stream().map(WxBatchOrder::getId).collect(Collectors.toList()); | |||||
| if(batchOrderIds.size() > 0){ | |||||
| Map<Long,List<WxOrderCouponVo>> batchOrderMap = getBatchOrderMap(wxOrder,batchOrderIds); | |||||
| page.getList().stream().forEach(oc->{ | |||||
| oc.setOrders(batchOrderMap.get(oc.getId())); | |||||
| }); | |||||
| } | |||||
| return page; | |||||
| } | |||||
| private Map<Long,List<WxOrderCouponVo>> getBatchOrderMap(TenantEntity tenantEntity,List<Long> batchOrderIds){ | |||||
| WxOrder recordQ = new WxOrder(); | |||||
| recordQ.updateTenantInfo(tenantEntity); | |||||
| recordQ.setComposeOrderIds(batchOrderIds); | |||||
| List<WxOrder> listOfCUser = wxOrderMapper.findListOfCUser(recordQ); | |||||
| List<WxOrderCouponVo> wxOrderCouponVos = toOrderCouponVoList(tenantEntity, listOfCUser, false); | |||||
| Map<Long, List<WxOrderCouponVo>> map = wxOrderCouponVos.stream().collect(Collectors.groupingBy(WxOrderCouponVo::getComposeOrderId)); | |||||
| return map; | |||||
| } | |||||
| // private List<WxOrderCouponVo> batchOderToOrderCouponVoList(List<WxBatchOrder> batchOrderList) { | // private List<WxOrderCouponVo> batchOderToOrderCouponVoList(List<WxBatchOrder> batchOrderList) { | ||||
| // if (null == batchOrderList || batchOrderList.size() <= 0 ) { | // if (null == batchOrderList || batchOrderList.size() <= 0 ) { | ||||
| // return null; | // return null; | ||||
| @@ -71,12 +71,16 @@ | |||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | <if test=" null != parentTenantId and '' != parentTenantId"> | ||||
| and o.`parent_tenant_id` = #{parentTenantId} | and o.`parent_tenant_id` = #{parentTenantId} | ||||
| </if> | </if> | ||||
| <if test="orderStatus != null"> | |||||
| AND o.order_status = #{orderStatus} | |||||
| </if> | |||||
| <if test=" null != payVendor "> | <if test=" null != payVendor "> | ||||
| and o.pay_vendor = #{payVendor} | and o.pay_vendor = #{payVendor} | ||||
| </if> | </if> | ||||
| <if test=" null != ids "> | |||||
| and o.id in | |||||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | |||||
| #{idItem} | |||||
| </foreach> | |||||
| </if> | |||||
| order by o.create_date desc | |||||
| </select> | </select> | ||||
| <select id="countList" parameterType="com.iformall.domain.po.WxBatchOrder" resultType="java.lang.Integer"> | <select id="countList" parameterType="com.iformall.domain.po.WxBatchOrder" resultType="java.lang.Integer"> | ||||
| @@ -347,6 +347,12 @@ | |||||
| <if test=" null != payVendor "> | <if test=" null != payVendor "> | ||||
| and o.pay_vendor = #{payVendor} | and o.pay_vendor = #{payVendor} | ||||
| </if> | </if> | ||||
| <if test=" null != composeOrderIds "> | |||||
| and o.compose_order_id in | |||||
| <foreach collection="composeOrderIds" index="index" item="composeOrderIdItem" open="(" separator="," close=")"> | |||||
| #{composeOrderIdItem} | |||||
| </foreach> | |||||
| </if> | |||||
| <if test=" null != sortColumns">order by ${sortColumns}</if> | <if test=" null != sortColumns">order by ${sortColumns}</if> | ||||
| </select> | </select> | ||||
| @@ -1200,5 +1206,22 @@ | |||||
| </foreach> | </foreach> | ||||
| </if> | </if> | ||||
| </update> | </update> | ||||
| <select id="getComposeOrderIds" parameterType="com.iformall.domain.po.WxOrder" resultType="Long"> | |||||
| select distinct compose_order_id from wx_order | |||||
| where parent_order_id = 0 | |||||
| and `tenant_id` = #{tenantId} | |||||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||||
| and `parent_tenant_id` = #{parentTenantId} | |||||
| </if> | |||||
| and c_user_id = #{cUserId} | |||||
| <if test="orderStatus != null"> | |||||
| AND order_status = #{orderStatus} | |||||
| </if> | |||||
| <if test=" null != payVendor "> | |||||
| and pay_vendor = #{payVendor} | |||||
| </if> | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||