| @@ -195,7 +195,8 @@ public class WxOrderController extends BaseController { | |||
| } | |||
| wxOrder.setCUserId(memberId); | |||
| wxOrder.setSortColumns(BaseEntity.SortField.UpdateDate_DESC); | |||
| final PageInfo<WxOrderCouponVo> page = wxOrderService.listCUserVoAsPage(wxOrder, pageNum, pageSize); | |||
| wxOrder.updateTenantInfo(getTenantInfo()); | |||
| final PageInfo<WxOrderCouponVo> 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<WxOrderCouponVo> page = wxOrderService.listGoodsCAsPage(wxOrder, pageNum, pageSize); | |||
| return new ResultData(page); | |||
| @@ -115,7 +115,8 @@ public class WxOrder extends TenantEntity { | |||
| private Long parentOrderId; | |||
| @TableField(exist = false) | |||
| protected List<Long> couponIds; | |||
| @TableField(exist = false) | |||
| protected List<Integer> statusS; | |||
| @@ -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<WxCoupon> 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()); | |||
| } | |||
| } | |||
| @@ -113,4 +113,6 @@ public interface WxCouponMapper extends CommonMapper<WxCoupon, Long> { | |||
| * @return | |||
| */ | |||
| List<WxCoupon> newfindCList(WxCoupon couponQ); | |||
| List<Long> findIdsListHasConditons(WxCoupon couponQ); | |||
| } | |||
| @@ -29,7 +29,7 @@ public interface WxOrderMapper extends CommonMapper<WxOrder, Long> { | |||
| List<WxOrder> findListOfUnpaidGroupOrderByDate(Map dateMap); | |||
| List<WxOrderCouponVo> findListOfCUser(WxOrder wxOrder); | |||
| List<WxOrder> findListOfCUser(WxOrder wxOrder); | |||
| List<WxOrderCouponVo> selectDetailOfCUser(WxOrder wxOrder); | |||
| /** B端收银台(收款码支付) */ | |||
| @@ -157,7 +157,7 @@ public interface WxOrderService { | |||
| PageInfo<WxOrderCouponVo> listCUserVoAsPage(WxOrder record, Integer pageIndex, Integer pageSize); | |||
| PageInfo<WxOrderCouponVo> listCUserVoAsPage(WxOrder record, Integer pageIndex, Integer pageSize,boolean hasMerchant); | |||
| WxOrderCouponVo detailCUserVo(WxOrder record); | |||
| @@ -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<Long> 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<WxOrderCouponVo> listCUserVoAsPage(WxOrder record, Integer pageIndex, Integer pageSize) { | |||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findListOfCUser(record)); | |||
| public PageInfo<WxOrderCouponVo> listCUserVoAsPage(WxOrder record, Integer pageIndex, Integer pageSize,boolean hasMerchant) { | |||
| PageInfo<WxOrder> pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findListOfCUser(record)); | |||
| PageInfo<WxOrderCouponVo> retPageInfo = new PageInfo<WxOrderCouponVo>(); | |||
| 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<WxOrderCouponVo> toOrderCouponVoList(TenantEntity tenantEntity,List<WxOrder> orderList,boolean hasMerchant) { | |||
| if (null == orderList || orderList.size() <=0 ) { | |||
| return null; | |||
| } | |||
| Map<Long,WxCoupon> couponMap = new HashMap<Long,WxCoupon>(); | |||
| List<Long> couponIds = new ArrayList<Long>(); | |||
| 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<WxCoupon> 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<WxOrderCouponVo> retList = new ArrayList<WxOrderCouponVo>(); | |||
| 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<WxOrderCouponVo> orderCouponVoList = wxOrderMapper.findListOfCUser(record); | |||
| PageInfo<WxOrderCouponVo> pageInfo = listCUserVoAsPage(record,1,10000,false); | |||
| List<WxOrderCouponVo> 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 = ""; | |||
| @@ -179,7 +179,7 @@ | |||
| </select> | |||
| <select id="countCouponChannel" parameterType="com.iformall.domain.po.WxCouponChannel" resultType="java.lang.Integer"> | |||
| select count(*) from wx_coupon_channel cc | |||
| select count(1) from wx_coupon_channel cc | |||
| <include refid="dynamicWhereConditions" /> | |||
| </select> | |||
| @@ -324,7 +324,8 @@ | |||
| </select> | |||
| <select id="findTenantSimpleList" parameterType="com.iformall.domain.po.WxCoupon" resultMap="BaseResultMap"> | |||
| select id,title,sale_price,use_price,price,auto_refund,business,subsidy_type,source_type,type,unit,cover_img,sub_title,valid_type,valid_start_date,valid_end_date | |||
| select id,title,sale_price,use_price,price,tail_price,orig_price,auto_refund,business,subsidy_type,source_type,type,unit,cover_img, | |||
| sub_title,valid_type,valid_start_date,valid_end_date,pick_start_date,pick_end_date | |||
| from wx_coupon c where c.`tenant_id` = #{tenantId} | |||
| <if test=" null != ids "> | |||
| and id in | |||
| @@ -1279,4 +1280,14 @@ | |||
| </if> | |||
| </select> | |||
| <select id="findIdsListHasConditons" parameterType="com.iformall.domain.po.WxCoupon" resultType="Long"> | |||
| select c.id | |||
| from wx_coupon c | |||
| where o.`tenant_id` = #{tenantId} and c.conditions is not null | |||
| /*and JSON_EXTRACT(c.conditions, '$.type') = 1*/ | |||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||
| and o.`parent_tenant_id` = #{parentTenantId} | |||
| </if> | |||
| </select> | |||
| </mapper> | |||