| @@ -195,7 +195,8 @@ public class WxOrderController extends BaseController { | |||||
| } | } | ||||
| wxOrder.setCUserId(memberId); | wxOrder.setCUserId(memberId); | ||||
| wxOrder.setSortColumns(BaseEntity.SortField.UpdateDate_DESC); | 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(); | Date now = new Date(); | ||||
| page.getList().stream().forEach(oc->{ | page.getList().stream().forEach(oc->{ | ||||
| @@ -532,6 +533,7 @@ public class WxOrderController extends BaseController { | |||||
| } | } | ||||
| wxOrder.setCUserId(memberId); | wxOrder.setCUserId(memberId); | ||||
| wxOrder.setSortColumns(BaseEntity.SortField.UpdateDate_DESC); | wxOrder.setSortColumns(BaseEntity.SortField.UpdateDate_DESC); | ||||
| wxOrder.updateTenantInfo(getTenantInfo()); | |||||
| final PageInfo<WxOrderCouponVo> page = wxOrderService.listGoodsCAsPage(wxOrder, pageNum, pageSize); | final PageInfo<WxOrderCouponVo> page = wxOrderService.listGoodsCAsPage(wxOrder, pageNum, pageSize); | ||||
| return new ResultData(page); | return new ResultData(page); | ||||
| @@ -115,7 +115,8 @@ public class WxOrder extends TenantEntity { | |||||
| private Long parentOrderId; | private Long parentOrderId; | ||||
| @TableField(exist = false) | |||||
| protected List<Long> couponIds; | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| protected List<Integer> statusS; | protected List<Integer> statusS; | ||||
| @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField; | |||||
| import com.fasterxml.jackson.annotation.JsonIgnoreProperties; | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; | ||||
| import com.iformall.common.SortColumn; | import com.iformall.common.SortColumn; | ||||
| import com.iformall.domain.po.WxCoupon; | import com.iformall.domain.po.WxCoupon; | ||||
| import com.iformall.domain.po.WxOrder; | |||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import lombok.Data; | import lombok.Data; | ||||
| import lombok.EqualsAndHashCode; | import lombok.EqualsAndHashCode; | ||||
| @@ -156,5 +157,45 @@ public class WxOrderCouponVo extends TenantEntity { | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private List<WxCoupon> giftCouponList; | 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 | * @return | ||||
| */ | */ | ||||
| List<WxCoupon> newfindCList(WxCoupon couponQ); | 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<WxOrder> findListOfUnpaidGroupOrderByDate(Map dateMap); | ||||
| List<WxOrderCouponVo> findListOfCUser(WxOrder wxOrder); | |||||
| List<WxOrder> findListOfCUser(WxOrder wxOrder); | |||||
| List<WxOrderCouponVo> selectDetailOfCUser(WxOrder wxOrder); | List<WxOrderCouponVo> selectDetailOfCUser(WxOrder wxOrder); | ||||
| /** B端收银台(收款码支付) */ | /** 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); | WxOrderCouponVo detailCUserVo(WxOrder record); | ||||
| @@ -470,6 +470,13 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE_REFUND.getCode()); | statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE_REFUND.getCode()); | ||||
| orderQ.setStatusS(statusS); | 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); | return wxOrderMapper.countCouponConditionType1(orderQ); | ||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error("用户正在参加的新手活动, userId: " + cuserId + ", e:" + e.getMessage()); | logger.error("用户正在参加的新手活动, userId: " + cuserId + ", e:" + e.getMessage()); | ||||
| @@ -1830,8 +1837,67 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| } | } | ||||
| @Override | @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 | @Override | ||||
| @@ -2657,14 +2723,17 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| if(oc.getLevel().equals(1)){ | if(oc.getLevel().equals(1)){ | ||||
| record.setComposeOrderId(oc.getComposeOrderId()); | record.setComposeOrderId(oc.getComposeOrderId()); | ||||
| record.setOrderStatus(oc.getOrderStatus()); | 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); | oc.setOrderCouponVoList(orderCouponVoList); | ||||
| } | } | ||||
| }); | }); | ||||
| return page; | return page; | ||||
| } | } | ||||
| private WxCoupon singleOrderCheck(OrderSaveDto orderSaveDto,int productCount,WxCUserBasicInfo wxCUserBasicInfo,EnumPayWay payWay,TenantEntity tenantEntity,int curindex,boolean singleProduct) { | private WxCoupon singleOrderCheck(OrderSaveDto orderSaveDto,int productCount,WxCUserBasicInfo wxCUserBasicInfo,EnumPayWay payWay,TenantEntity tenantEntity,int curindex,boolean singleProduct) { | ||||
| logger.info("OrderSave: " + orderSaveDto); | logger.info("OrderSave: " + orderSaveDto); | ||||
| String premsg = ""; | String premsg = ""; | ||||
| @@ -179,7 +179,7 @@ | |||||
| </select> | </select> | ||||
| <select id="countCouponChannel" parameterType="com.iformall.domain.po.WxCouponChannel" resultType="java.lang.Integer"> | <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" /> | <include refid="dynamicWhereConditions" /> | ||||
| </select> | </select> | ||||
| @@ -324,7 +324,8 @@ | |||||
| </select> | </select> | ||||
| <select id="findTenantSimpleList" parameterType="com.iformall.domain.po.WxCoupon" resultMap="BaseResultMap"> | <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} | from wx_coupon c where c.`tenant_id` = #{tenantId} | ||||
| <if test=" null != ids "> | <if test=" null != ids "> | ||||
| and id in | and id in | ||||
| @@ -1279,4 +1280,14 @@ | |||||
| </if> | </if> | ||||
| </select> | </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> | </mapper> | ||||