From 37e5bdf0f9d443e9025c2be8bf478226490a2d38 Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 15 Jan 2022 17:37:10 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=88=B8=E8=AE=A2=E5=8D=95=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/po/WxCardTransferInfo.java | 4 +- .../com/iformall/domain/po/WxCouponOrder.java | 2 + .../mapper/WxCardTransferInfoMapper.java | 7 + .../iformall/mapper/WxCouponOrderMapper.java | 4 +- .../service/WxCouponOrderService.java | 1 - .../impl/WxCouponOrderServiceImpl.java | 145 ++++++++++++++++-- .../mapper/WxCardTransferInfoMapper.xml | 108 +++++++++++++ .../resources/mapper/WxCouponOrderMapper.xml | 113 ++------------ 8 files changed, 274 insertions(+), 110 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCardTransferInfo.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCardTransferInfo.java index e5bffcbf3..a9a2debf6 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCardTransferInfo.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCardTransferInfo.java @@ -12,7 +12,9 @@ import java.util.Date; @EqualsAndHashCode(callSuper = true) public class WxCardTransferInfo extends TenantEntity { - protected Long id; + private static final long serialVersionUID = -9050402557376410064L; + + protected Long id; //保存到转赠表中 id,coupon_order_id,tenant_id,title,amount,remain_amount,from_user,to_user,status,create_date,update_date diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java index c375119c6..d932a3eef 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java @@ -34,6 +34,8 @@ public class WxCouponOrder extends TenantEntity { private Long ownerId; @io.swagger.annotations.ApiModelProperty(value = "操作券B端小程序用户ID", name = "bUserId") private Long bUserId; + @TableField(exist = false) + private List bUserIdList; @io.swagger.annotations.ApiModelProperty(value = "操作券A端用户ID", name = "aUserId") private Long aUserId; @io.swagger.annotations.ApiModelProperty(value = "用户订单ID", name = "orderId") diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCardTransferInfoMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCardTransferInfoMapper.java index c50ba5266..5a8044a68 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCardTransferInfoMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCardTransferInfoMapper.java @@ -7,9 +7,16 @@ import org.apache.ibatis.annotations.Param; import com.iformall.common.CommonMapper; import com.iformall.domain.po.WxCardTransferInfo; +import com.iformall.domain.vo.WxCardCVo; public interface WxCardTransferInfoMapper extends CommonMapper { void cardDefer(@Param("expiredTime")Date expiredTime,@Param("couponOrderIds")List couponOrderIds); + + List findList(WxCardTransferInfo record); + + WxCardTransferInfo selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + + List findCardListOfCUser(WxCardCVo record); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java index 904108788..e388cb86d 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java @@ -83,8 +83,8 @@ public interface WxCouponOrderMapper extends CommonMapper { //// 卡相关接口 - List findCardListOfCUser(WxCardCVo wxCardCVo); - WxCardCVo findCardDetailOfCUser(@Param("id")Long id,@Param("tenantId")String tenantId); + List findCardListOfCUser(WxCardCVo wxCardCVo); + WxCouponOrder findCardDetailOfCUser(@Param("id")Long id,@Param("tenantId")String tenantId); /// POS接口 diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java index a8715a766..b5cdbbcc2 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java @@ -220,7 +220,6 @@ public interface WxCouponOrderService { List couponDataMap(TenantEntity tenantEntity,Date startTime,Date endTime); - /// POS接口 List findAvailCouponOrder(TenantEntity tenantEntity,Long cUserId,Long merchantId,Long posOrderId); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index 358d7d587..ef3a007ae 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -692,6 +692,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { retPageInfo.setPageNum(pageInfo.getPageNum()); retPageInfo.setPageSize(pageInfo.getPageSize()); retPageInfo.setList(couponOrderListToCarVoList(wxCouponOrder,pageInfo.getList())); + retPageInfo.setPages(pageInfo.getPages()); return retPageInfo; } @@ -2111,11 +2112,124 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { return count; } - + private WxCardCVo findCardDetailOfCUser(Long id,String tenantId) { + WxCouponOrder couponOrder = wxCouponOrderMapper.findCardDetailOfCUser(id,tenantId); + if (null == couponOrder) { + return null; + } + WxCoupon couponQ = new WxCoupon(); + couponQ.setTenantId(tenantId); + couponQ.setId(couponOrder.getCouponId()); + WxCoupon coupon = wxCouponMapper.findSimpleDetail(couponQ); + + WxCardInfo cardInfo = wxCardInfoMapper.selectById(couponOrder.getId()); + return getCouponOrderCardCVo(couponOrder,coupon,cardInfo); + } + @Override public ResultData listCardVoAsPage(WxCardCVo record, Integer pageIndex, Integer pageSize) { - return new ResultData(PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponOrderMapper.findCardListOfCUser(record))); + //List cardTransList = wxCardTransferInfoMapper.findCardListOfCUser(record); + PageInfo pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponOrderMapper.findCardListOfCUser(record)); + PageInfo retPageInfo = new PageInfo(); + retPageInfo.setPageNum(pageInfo.getPageNum()); + retPageInfo.setPageSize(pageInfo.getPages()); + retPageInfo.setPages(pageInfo.getPages()); + retPageInfo.setList(couponOrderToCardCVoList(record,pageInfo.getList()));; + return new ResultData(retPageInfo); } + + private List couponOrderToCardCVoList(TenantEntity tenantEntity,List couponOrderList) { + if (null != couponOrderList) { + //查询coupon + List couponIds = new ArrayList(); + List couponOrderIds = new ArrayList(); + for (int i = 0 ; i < couponOrderList.size(); i++){ + WxCouponOrder co = couponOrderList.get(i); + Long couponId = co.getCouponId(); + if (null != couponId && (!couponIds.contains(couponId))) { + couponIds.add(couponId); + } + couponOrderIds.add(co.getId()); + } + WxCoupon couponQ = new WxCoupon(); + couponQ.updateTenantInfo(tenantEntity); + if (couponIds.size() > 0 ) { + couponQ.setIds(couponIds); + } + List couponList = wxCouponMapper.findSimpleDetailList(couponQ); + Map couponMap = new HashMap(); + if (null != couponList) { + for (int i = 0 ; i < couponList.size(); i++ ) { + WxCoupon c = couponList.get(i); + if (null != c) { + couponMap.put(c.getId(), c); + } + } + } + + WxCardInfo couponCarQ = new WxCardInfo(); + couponCarQ.updateTenantInfo(tenantEntity); + if (couponOrderIds.size() > 0 ) { + couponCarQ.setIds(couponOrderIds); + } + List cardInfoList = wxCardInfoMapper.findList(couponCarQ); + Map cardInfoMap = new HashMap(); + if (null != cardInfoList) { + for (int i = 0 ; i < cardInfoList.size(); i++ ) { + WxCardInfo cc = cardInfoList.get(i); + if (null != cc) { + cardInfoMap.put(cc.getId(), cc); + } + } + } + + List volist = new ArrayList(); + for (int i = 0 ; i < couponOrderList.size(); i++){ + WxCouponOrder co = couponOrderList.get(i); + WxCardCVo cvo = getCouponOrderCardCVo(co,couponMap,cardInfoMap); + if (null != cvo) { + volist.add(cvo); + } + + } + return volist; + } + return null; + } + + private WxCardCVo getCouponOrderCardCVo(WxCouponOrder co,Map couponMap,Map cardInfoMap) { + WxCoupon coupon = couponMap.get(co.getCouponId()); + WxCardInfo cardInfo= cardInfoMap.get(co.getId()); + return getCouponOrderCardCVo(co,coupon,cardInfo); + } + + private WxCardCVo getCouponOrderCardCVo(WxCouponOrder co,WxCoupon coupon,WxCardInfo cardInfo) { + if (null == co) { + return null; + } + try { + WxCardCVo cvo = new WxCardCVo(); + BeanUtils.copyProperties(cvo, co); + if (null != coupon) { + cvo.setCoverImg(coupon.getCoverImg()); + cvo.setTitle(coupon.getTitle()); + cvo.setSubTitle(coupon.getSubTitle()); + cvo.setUnit(coupon.getUnit()); + cvo.setDetail(coupon.getDetail()); + cvo.setRemark(coupon.getRemark()); + } + if (null != cardInfo) { + cvo.setAmount(cardInfo.getAmount()); + cvo.setRemainingAmount(cardInfo.getRemainingAmount()); + cvo.setSupportTransfer(cardInfo.getSupportTransfer()); + } + return cvo; + } catch (IllegalAccessException | InvocationTargetException e) { + logger.error("getCouponOrderCardCVo error.",e); + } + return null; + } + @Override public ResultData cardDetailCUserVo(Long ownerId, TenantEntity tenantinfo, String couponOrderId) { @@ -2125,7 +2239,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { throw new MallinkException(ErrorCode.USER_IS_EMPTY); } - WxCardCVo cardCVo = wxCouponOrderMapper.findCardDetailOfCUser(Long.valueOf(couponOrderId),tenantinfo.getTenantId()); + WxCardCVo cardCVo = findCardDetailOfCUser(Long.valueOf(couponOrderId),tenantinfo.getTenantId()); Long couponId = cardCVo.getCouponId(); WxCouponChannel wxCouponChannel = new WxCouponChannel(); wxCouponChannel.setCouponId(couponId); @@ -2142,7 +2256,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { @Override public ResultData cardAccept(WxCouponOrder record) { //卡券是否存在 - WxCardCVo cardCVo = wxCouponOrderMapper.findCardDetailOfCUser(record.getId(),record.getTenantId()); + WxCardCVo cardCVo = findCardDetailOfCUser(record.getId(),record.getTenantId()); if (cardCVo == null) { logger.info("卡券不存在" + record.getId()); return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); @@ -2196,7 +2310,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { @Override public ResultData queryCardStatus(WxCouponOrder record) { //卡券是否存在 - WxCardCVo cardCVo = wxCouponOrderMapper.findCardDetailOfCUser(record.getId(),record.getTenantId()); + WxCardCVo cardCVo = findCardDetailOfCUser(record.getId(),record.getTenantId()); if (cardCVo == null) { logger.info("卡券不存在" + record.getId()); return new ResultData(ErrorCode.COUPON_ORDER_IS_NULL); @@ -2581,16 +2695,29 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { @Override public void statisticsWriteOff(WxCouponOrder wxCouponOrder, Map resultMap) { wxCouponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); - resultMap.put("couponWriteOff",wxCouponOrderMapper.findWriteOffCount(wxCouponOrder)); + resultMap.put("couponWriteOff",findWriteOffCount(wxCouponOrder)); wxCouponOrder.setCouponType(EnumCouponType.COUPON_GROUP.getCode()); - resultMap.put("groupWriteOff",wxCouponOrderMapper.findWriteOffCount(wxCouponOrder)); + resultMap.put("groupWriteOff",findWriteOffCount(wxCouponOrder)); wxCouponOrder.setCouponType(EnumCouponType.COUPON_PRESS.getCode()); - resultMap.put("pressWriteOff",wxCouponOrderMapper.findWriteOffCount(wxCouponOrder)); + resultMap.put("pressWriteOff",findWriteOffCount(wxCouponOrder)); wxCouponOrder.setCouponType(EnumCouponType.COUPON_TINGCHE.getCode()); wxCouponOrder.setSendMerchantId(wxCouponOrder.getMerchantId()); wxCouponOrder.setMerchantId(null); wxCouponOrder.setCouponOrderStatus(null); - resultMap.put("countTingche",wxCouponOrderMapper.findWriteOffCount(wxCouponOrder)); + resultMap.put("countTingche",findWriteOffCount(wxCouponOrder)); + } + + private Integer findWriteOffCount(WxCouponOrder wxCouponOrder) { + if (null != wxCouponOrder.getMerchantId()) { + WxMerchantBUser merchantBUserQ = new WxMerchantBUser(); + merchantBUserQ.updateTenantInfo(wxCouponOrder); + merchantBUserQ.setMerchantId(wxCouponOrder.getMerchantId()); + List buserIds = wxMerchantBUserMapper.findIdList(merchantBUserQ); + if (null != buserIds && buserIds.size() > 0) { + wxCouponOrder.setBUserIdList(buserIds); + } + } + return wxCouponOrderMapper.findWriteOffCount(wxCouponOrder); } @Override diff --git a/mallinkService/src/main/resources/mapper/WxCardTransferInfoMapper.xml b/mallinkService/src/main/resources/mapper/WxCardTransferInfoMapper.xml index aa00bddda..28bca16ca 100644 --- a/mallinkService/src/main/resources/mapper/WxCardTransferInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCardTransferInfoMapper.xml @@ -1,6 +1,114 @@ + + + + + + + + + + + + + + + + + + + `id`,`tenant_id`,`parent_tenant_id`,`coupon_order_id`,`title`,`amount`,`remain_amount`,`from_user`,`to_user`,`status`,`expired_time`, + `create_date`,`update_date` + + + + where 1 = 1 + + + and `id` = #{id} + + + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + + and `coupon_order_id` = #{couponOrderId} + + + + and `from_user` = #{fromUser} + + + + and `to_user` = #{toUser} + + + + and `status` = #{status} + + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + update wx_card_transfer_info set expired_time = #{expiredTime},update_date=now() where coupon_order_id in diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index c9c0ba453..002eadada 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -1017,88 +1017,11 @@ order by ${sortColumns} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.expired_time,co.coupon_order_status,co.create_date,co.update_date, - c.cover_img,c.title,c.sub_title,c.detail,c.unit,c.remark, - a.amount,a.remaining_amount,a.support_transfer - - - - co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.c_user_id,co.owner_id,co.b_user_id,co.order_id,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price, - c.cover_img,c.title,c.sub_title,c.sale_price,c.price,c.unit,c.detail,c.remark, - a.amount,a.remaining_amount,a.support_transfer - - - - select - + co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.expired_time,co.coupon_order_status,co.create_date,co.update_date from wx_coupon_order co - inner join wx_coupon c on co.coupon_id = c.id - inner join wx_card_info a on co.id=a.id - where 1=1 - and co.coupon_type = 100 + where co.coupon_type = 100 and co.`tenant_id` = #{tenantId} @@ -1121,15 +1044,14 @@ #{sItem} - ) c order by ${sortColumns} - + select + co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.coupon_type,co.c_user_id,co.owner_id,co.b_user_id,co.order_id,co.expired_time,co.coupon_order_status, + co.create_date,co.update_date,co.coupon_price + from wx_coupon_order co where co.id = #{id} and co.tenant_id = #{tenantId} @@ -1142,20 +1064,12 @@ \ No newline at end of file