diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java index 7ba52de34..5a05d0a43 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderController.java @@ -44,23 +44,22 @@ public class WxCouponOrderController extends BaseController { @Autowired private WxAppinfoService wxAppinfoService; - //TODO 待优化数据 -// @ApiOperation("分页列表接口") -// @GetMapping("list") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), -// @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) -// @SystemControllerLog(description = "券包-列表") -// public ResultData list(@ModelAttribute WxCouponOrderBVo wxCouponOrder, Integer pageNum, Integer pageSize) { -// logger.debug("[" + getIpAddr() + "] WxCouponOrderController::list"); -// if (wxCouponOrder == null) wxCouponOrder = new WxCouponOrderBVo(); -// wxCouponOrder.updateTenantInfo(getTenantInfo()); -// if (wxCouponOrder.getMerchantName() != null && -// wxCouponOrder.getMerchantName().isEmpty()) { -// wxCouponOrder.setMerchantName(null); -// } -// return wxCouponOrderService.listAdminAsPage(wxCouponOrder, pageNum, pageSize); -// } + @ApiOperation("分页列表接口") + @GetMapping("list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + @SystemControllerLog(description = "券包-列表") + public ResultData list(@ModelAttribute WxCouponOrderBVo wxCouponOrder, Integer pageNum, Integer pageSize) { + logger.debug("[" + getIpAddr() + "] WxCouponOrderController::list"); + if (wxCouponOrder == null) wxCouponOrder = new WxCouponOrderBVo(); + wxCouponOrder.updateTenantInfo(getTenantInfo()); + if (wxCouponOrder.getMerchantName() != null && + wxCouponOrder.getMerchantName().isEmpty()) { + wxCouponOrder.setMerchantName(null); + } + return wxCouponOrderService.listAdminAsPage(wxCouponOrder, pageNum, pageSize); + } @ApiOperation(value = "卡券详情接口") @GetMapping("detail") @@ -126,18 +125,17 @@ public class WxCouponOrderController extends BaseController { return new ResultData(ErrorCode.REFUND_ORDER_ERROR.getCode(), "AppInfo获取失败"); } - //TODO 待优化数据 -// @GetMapping("exportData") -// @SystemControllerLog(description = "券订单数据-导出数据") -// public void exportData(@ModelAttribute WxCouponOrderBVo wxCouponOrder, HttpServletRequest request, HttpServletResponse response) { -// logger.debug("[" + getIpAddr() + "] WxCouponOrderController::exportData"); -// if (wxCouponOrder == null) wxCouponOrder = new WxCouponOrderBVo(); -// wxCouponOrder.updateTenantInfo(getTenantInfo()); -// if (wxCouponOrder.getMerchantName() != null && -// wxCouponOrder.getMerchantName().isEmpty()) { -// wxCouponOrder.setMerchantName(null); -// } -// wxCouponOrderService.exportData(wxCouponOrder, request, response); -// } + @GetMapping("exportData") + @SystemControllerLog(description = "券订单数据-导出数据") + public void exportData(@ModelAttribute WxCouponOrderBVo wxCouponOrder, HttpServletRequest request, HttpServletResponse response) { + logger.debug("[" + getIpAddr() + "] WxCouponOrderController::exportData"); + if (wxCouponOrder == null) wxCouponOrder = new WxCouponOrderBVo(); + wxCouponOrder.updateTenantInfo(getTenantInfo()); + if (wxCouponOrder.getMerchantName() != null && + wxCouponOrder.getMerchantName().isEmpty()) { + wxCouponOrder.setMerchantName(null); + } + wxCouponOrderService.exportData(wxCouponOrder, request, response); + } } 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 8994f0573..7d651646e 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponOrder.java @@ -43,6 +43,8 @@ public class WxCouponOrder extends TenantEntity { private Integer couponOrderStatus; @io.swagger.annotations.ApiModelProperty(value = "创建时间", name = "createDate") private Date createDate; + @io.swagger.annotations.ApiModelProperty(value = "创建时间数值,供查询优化用", name = "createDateTimes") + private Long createDateTimes; @io.swagger.annotations.ApiModelProperty(value = "更新时间", name = "updateDate") private Date updateDate; @io.swagger.annotations.ApiModelProperty(value = "单券实际购买价格", name = "couponPrice") @@ -70,6 +72,9 @@ public class WxCouponOrder extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="商品数量",name="couponNumber") private Integer couponNumber; + + @io.swagger.annotations.ApiModelProperty(value="补贴",name="subsidy") + private Integer subsidy; @TableField(exist = false) private String couponName; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantBUser.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantBUser.java index 1f1aba28a..248f165bc 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantBUser.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantBUser.java @@ -9,6 +9,7 @@ import lombok.EqualsAndHashCode; import java.util.Date; +import java.util.List; import java.util.UUID; @TableName(value = "wx_merchant_b_user") @@ -24,6 +25,8 @@ public class WxMerchantBUser extends TenantEntity { private String userPwd; @io.swagger.annotations.ApiModelProperty(value = "商户id", name = "merchantId") private Long merchantId; + @TableField(exist = false) + private List merchantIds; @io.swagger.annotations.ApiModelProperty(value = "创建时间", name = "createDate") private Date createDate; @io.swagger.annotations.ApiModelProperty(value = "更新时间", name = "updateDate") diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantShop.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantShop.java index 386ff1bfd..d7e18695f 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantShop.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantShop.java @@ -1,11 +1,13 @@ 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 lombok.Data; import lombok.EqualsAndHashCode; import java.util.Date; +import java.util.List; @TableName(value = "wx_merchant_shop") @Data @@ -18,6 +20,8 @@ public class WxMerchantShop extends TenantEntity { private Long merchantId; @io.swagger.annotations.ApiModelProperty(value="商铺ID",name="shopId") private Long shopId; + @TableField(exist = false) + private List shopIdList; @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") private Date createDate; @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponOrderBVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponOrderBVo.java index f30bab040..fbefe0de8 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponOrderBVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxCouponOrderBVo.java @@ -55,7 +55,7 @@ public class WxCouponOrderBVo extends WxCouponOrder { @Excel(name = "会员手机号", width = 20, orderNum = "13") @io.swagger.annotations.ApiModelProperty(value="c用户绑定的手机号",name="cUserPhone") private String cUserPhone; - + @Excel(name = "微信昵称", width = 20, orderNum = "14") @io.swagger.annotations.ApiModelProperty(value="微信昵称",name="userNickName") private String userNickName; @@ -141,7 +141,8 @@ public class WxCouponOrderBVo extends WxCouponOrder { @Excel(name = "所属商户", width = 50, orderNum = "3") @io.swagger.annotations.ApiModelProperty(value="使用券商户名",name="merchantName") private String merchantName; - + @TableField(exist = false) + private List bUserIdList; @Excel(name = "发券商户(商户注券)", width = 50, orderNum = "3") @io.swagger.annotations.ApiModelProperty(value="发券商户(商户注券)",name="sendMerchantName") @@ -170,9 +171,13 @@ public class WxCouponOrderBVo extends WxCouponOrder { @TableField(exist = false) private Date startDate; + @TableField(exist = false) + private Long startDateTimes; @TableField(exist = false) private Date endDate; + @TableField(exist = false) + private Long endDateTimes; @TableField(exist = false) private Long merchantId; @@ -192,6 +197,8 @@ public class WxCouponOrderBVo extends WxCouponOrder { @TableField(exist = false) private Long couponId; + @TableField(exist = false) + private List couponIds; @Excel(name = "类型", width = 50, orderNum = "16", replace = {"满减券_1", "代金券_2", "团购券_3", "礼品券_4", "停车券_5", "通用券_6", "砍价券_8", "团购券_9", "预购商品_10", "可配送商品_11", "券礼包_12", "积分券_50", "积分停车券_51", "消费卡_100"}) @TableField(exist = false) diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantProductVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantProductVo.java new file mode 100644 index 000000000..4ea56653d --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantProductVo.java @@ -0,0 +1,31 @@ +package com.iformall.domain.vo; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; +import java.util.List; + +@JsonIgnoreProperties(value = {"handler"}) +@Data +@EqualsAndHashCode(callSuper = true) +public class WxMerchantProductVo extends TenantEntity { + + /** + * + */ + private static final long serialVersionUID = -367003237067255221L; + + + @io.swagger.annotations.ApiModelProperty(value = "券编码", name = "productId") + private Long productId; + + @io.swagger.annotations.ApiModelProperty(value = "商户编码", name = "merchantId") + private Long merchantId; + + @io.swagger.annotations.ApiModelProperty(value = "商户数", name = "merchantId") + private Integer mc; + +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java index 319b5030f..e49299dcf 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java @@ -22,6 +22,8 @@ public interface WxCUserBasicInfoMapper extends CommonMapper findList(WxCUserBasicInfo wxCUserBasicInfo); List findList1(@Param("tenantInfo")TenantEntity tenantInfo, @Param("basicInfo")WxCUserBasicInfo wxCUserBasicInfo); + List findListPhoneAndNameByIds(WxCUserBasicInfo wxCUserBasicInfo); + WxCUserBasicInfo selectById(@Param("id")Long id,@Param("finalTenantId")String finalTenantId); void updateScore(WxCUserBasicInfo record); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java index 104d13c02..98c6aa08e 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java @@ -15,6 +15,10 @@ public interface WxCouponMapper extends CommonMapper { List findCountData(@Param("tenantEntitys")List tenantEntitys, @Param("wxCoupon")WxCoupon wxCoupon); List findList(WxCoupon wxCoupon); + + List findTenantSimpleList(WxCoupon wxCoupon); + + List findIdList(WxCoupon wxCoupon); List findCouponList(WxCoupon wxCoupon); WxCoupon selectById(@Param("id")Long id,@Param("tenantId")String tenantId); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMerchantMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMerchantMapper.java index bf3ed8705..aabbde2b4 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMerchantMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMerchantMapper.java @@ -3,6 +3,7 @@ package com.iformall.mapper; import com.iformall.common.CommonMapper; import com.iformall.domain.po.WxCouponMerchant; +import com.iformall.domain.vo.WxMerchantProductVo; import com.iformall.domain.vo.WxMerchantVo; import java.util.List; @@ -16,4 +17,6 @@ public interface WxCouponMerchantMapper extends CommonMapper findMerchantVoList(@Param("productId")Long productId,@Param("tenantId")String tenantId); List findMerchantNameList(@Param("productId")Long productId,@Param("tenantId")String tenantId); List findMerchantBaseList(@Param("productId")Long productId,@Param("tenantId")String tenantId); + List findMerchantProduct(@Param("tenantId")String tenantId,@Param("merchantIdList")List merchantIdList); + List findMerchantProductIds(@Param("tenantId")String tenantId,@Param("merchantIdList")List merchantIdList); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java index 0e5b49390..76f654515 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java @@ -32,6 +32,7 @@ public interface WxCouponOrderMapper extends CommonMapper { int updateVerifyCouponOrderStatus(WxCouponOrder wxCouponOrder); int updateVerifyCouponOrderStatusForMicroPay(WxCouponOrder wxCouponOrder); int cancelVerifyCouponOrder(WxCouponOrder wxCouponOrder); + int updateVerifyCouponOrderSubsidy(WxCouponOrder wxCouponOrder); //统一的计数接口 int findCount(WxCouponOrder wxCouponOrder); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantBUserMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantBUserMapper.java index a0c92529f..7675d5b29 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantBUserMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantBUserMapper.java @@ -8,6 +8,9 @@ import com.iformall.domain.vo.WxMerchantBuInfoVo; public interface WxMerchantBUserMapper extends CommonMapper { List findList(WxMerchantBUser wxMerchantBUser); + List findIdList(WxMerchantBUser wxMerchantBUser); + + List findMerchantIdListByIds(WxMerchantBUser wxMerchantBUser); List findSelMerchantList(WxMerchantBUser wxMerchantBUser); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java index 09d66f79c..bbbb334af 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java @@ -16,6 +16,7 @@ import java.util.Map; public interface WxMerchantMapper extends CommonMapper { List findList(WxMerchant wxMerchant); + List findIdList(WxMerchant wxMerchant); List findIdNameList(WxMerchant wxMerchant); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java index e8ec02083..e5680673a 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java @@ -11,6 +11,8 @@ public interface WxMerchantShopMapper extends CommonMapper findList(WxMerchantShop wxMerchantShop); + List findMerchantIdList(WxMerchantShop wxMerchantShop); + List findShopIds(@Param("merchantId") Long merchantId); void delShops(@Param("merchantId") Long merchantId,@Param("shopList") List shopIds); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxShopMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxShopMapper.java index a99b1fcd0..09f6135f7 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxShopMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxShopMapper.java @@ -16,6 +16,7 @@ import java.util.Map; public interface WxShopMapper extends CommonMapper { List findList(WxShop wxShop); + List findIdList(WxShop wxShop); List> findListMap(WxShop record); diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java index 6594442f4..d3055ed16 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java @@ -44,7 +44,8 @@ public interface WxCUserBasicInfoService { */ PageInfo listAsPage(WxCUserBasicInfo record, Integer pageIndex, Integer pageSize); PageInfo listAsPage(TenantEntity tenantInfo, WxCUserBasicInfo wxCUserBasicInfo, Integer pageIndex, Integer pageSize); - + + List listPhoneAndNameByIds(WxCUserBasicInfo record); /** * 根据实体查询列表 * @param record diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index 0eb208181..29b3731d6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -591,6 +591,12 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc return wxCUserBasicInfoMapper.selectCount(new QueryWrapper(record)); } + + @Override + public List listPhoneAndNameByIds(WxCUserBasicInfo record) { + return wxCUserBasicInfoMapper.findListPhoneAndNameByIds(record); + } + @Override public List findByPhone(TenantEntity tenantEntity, String phone) { WxCUserBasicInfo basicQ = new WxCUserBasicInfo(); 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 7bbdc6eaf..a1e5a5f5e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -171,6 +171,12 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { SysConfigService sysConfigService; @Autowired WxMerchantBUserService wxMerchantBUserService; + + + @Autowired + WxShopMapper wxShopMapper; + @Autowired + WxMerchantShopMapper wxMerchantShopMapper; private final SimpleDateFormat mydateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -335,9 +341,326 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { @Override public ResultData listAdminAsPage(WxCouponOrderBVo wxCouponOrderBVo, Integer pageIndex, Integer pageSize) { + handleWxCouponOrderBVoQueryParam(wxCouponOrderBVo); PageInfo pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponOrderMapper.findListOfAdmin(wxCouponOrderBVo)); + if (null != pageInfo && null != pageInfo.getList()){ + handleQueryResult(pageInfo.getList(), wxCouponOrderBVo); + } return new ResultData(pageInfo); } + + private void handleQueryResult(List list,TenantEntity tenantEntity) { + if (null != list ) { + + WxMerchant merchantQ = new WxMerchant(); + merchantQ.updateTenantInfo(tenantEntity); + List merchantList = wxMerchantMapper.findIdNameList(merchantQ); + Map merchantNameMap = new HashMap(); + if (null != merchantList) { + for (int i = 0 ; i < merchantList.size() ; i ++) { + WxMerchant m = merchantList.get(i); + merchantNameMap.put(m.getId(), m.getName()); + } + } + + WxCoupon couponQ = new WxCoupon(); + couponQ.updateTenantInfo(tenantEntity); + List couponList = wxCouponMapper.findTenantSimpleList(couponQ); + Map couponMap = new HashMap(); + if (null != couponList) { + for (int i = 0 ; i < couponList.size() ; i ++) { + WxCoupon c = couponList.get(i); + couponMap.put(c.getId(), c); + } + } + + + List merchantProductVos = wxCouponMerchantMapper.findMerchantProduct(tenantEntity.getTenantId(), null); + Map merchantProductIdMap = new HashMap(); + if (null != merchantProductVos) { + for (int i = 0 ; i < merchantProductVos.size(); i ++) { + WxMerchantProductVo mp = merchantProductVos.get(i); + if (mp.getMc() > 1) { + merchantProductIdMap.put(mp.getProductId(), -999L); + }else { + merchantProductIdMap.put(mp.getProductId(), mp.getMerchantId()); + } + } + } + + //循环list,获取 cUserId + List cUserIdList = new ArrayList(); + List bUserIdList = new ArrayList(); + for (int i = 0 ; i < list.size() ; i ++ ) { + WxCouponOrderBVo bo = list.get(i); + Long cusrid = bo.getcUserId(); + if (null != cusrid && (!cUserIdList.contains(cusrid))) { + cUserIdList.add(cusrid); + } + Long busrid = bo.getBUserId(); + if (null != busrid && (!bUserIdList.contains(busrid))) { + bUserIdList.add(busrid); + } + } + Map cUserMap = new HashMap(); + if (cUserIdList.size() > 0) { + WxCUserBasicInfo cUserBasicInfoQ = new WxCUserBasicInfo(); + cUserBasicInfoQ.setIds(cUserIdList); + cUserBasicInfoQ.setFinalTenantId(tenantEntity.getFinalTenantId()); + List cuserList = wxCUserBasicInfoService.listPhoneAndNameByIds(cUserBasicInfoQ); + if (null != cuserList) { + for (int i = 0 ; i < cuserList.size() ; i++) { + WxCUserBasicInfo cbi = cuserList.get(i); + cUserMap.put(cbi.getId(), cbi); + } + } + } + + Map buserMerchantIdMap = new HashMap(); + if (bUserIdList.size() > 0 ) { + WxMerchantBUser merchantBUserQ = new WxMerchantBUser(); + merchantBUserQ.setIds(bUserIdList); + merchantBUserQ.updateTenantInfo(tenantEntity); + List busrlist = wxMerchantBUserMapper.findMerchantIdListByIds(merchantBUserQ); + if (null != busrlist ) { + for (int i = 0 ; i < busrlist.size() ; i ++) { + WxMerchantBUser buser = busrlist.get(i); + buserMerchantIdMap.put(buser.getId(), buser.getMerchantId()); + } + } + } + + + for (int i = 0 ; i < list.size() ; i ++) { + WxCouponOrderBVo co = list.get(i); + if (co.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode())) { + co.setUpdateDate(null); + } + if (null != co.getSendMerchantId()) { + co.setSendMerchantName(merchantNameMap.get(co.getSendMerchantId())); + } + WxCoupon coupon = couponMap.get(co.getCouponId()); + if (null != coupon) { + co.setTitle(coupon.getTitle()); + co.setSalePrice(coupon.getSalePrice()); + co.setUsePrice(coupon.getUsePrice()); + co.setPrice(coupon.getPrice()); + co.setAutoRefund(coupon.getAutoRefund()); + co.setBusiness(coupon.getBusiness()); + co.setSubsidyType(coupon.getSubsidyType()); + co.setSourceType(coupon.getSourceType()); + } + +// WxMerchantSubsidy merchantSubsidyQ = new WxMerchantSubsidy(); +// merchantSubsidyQ.setCouponOrderId(co.getId()); +// merchantSubsidyQ.setCouponType(co.getCouponType()); +// merchantSubsidyQ.setType(EnumMerchantSubsidyType.MANUAL.getCode()); +// merchantSubsidyQ.updateTenantInfo(co); +// List msList = wxMerchantSubsidyMapper.selectList(new QueryWrapper(merchantSubsidyQ)); +// if (msList.size() > 0) { +// co.setSubsidyNum(msList.get(0).getSubsidy()); +// } + co.setSubsidyNum(co.getSubsidy()); + + Long merchanId = merchantProductIdMap.get(co.getCouponId()); + if (null != merchanId) { + if (merchanId == -999L) { + co.setMerchantName("多商户通用"); + co.setMerchantId(0L); + }else { + co.setMerchantName(merchantNameMap.get(merchanId)); + co.setMerchantId(merchanId); + } + } + + //WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.getById(co.getCUserId(), co.getFinalTenantId()); + WxCUserBasicInfo basicInfo = cUserMap.get(co.getCUserId()); + if (null != basicInfo) { + co.setcuserPhone(basicInfo.getPhone()); + co.setUserNickName(basicInfo.getNickName()); + } + + //WxMerchantBUser buser = wxMerchantBUserService.getById(co.getBUserId()); + Long buserMechantId = buserMerchantIdMap.get(co.getBUserId()); + if (null != buserMechantId) { + co.setVerifyMerchantName(merchantNameMap.get(buserMechantId)); + } + //co.setChannelType();) + + } + } + + } + + + private List getMerchantIdsQueryParam(WxCouponOrderBVo wxCouponOrder) { + + List retMerchantIdList = new ArrayList(); + boolean isConditiondQquery = false; + //根据名称查询商户 + String merchantName = StringUtils.trimToNull(wxCouponOrder.getMerchantName()); + if (null != merchantName) { + WxMerchant merchantQ1 = new WxMerchant(); + merchantQ1.updateTenantInfo(wxCouponOrder); + merchantQ1.setName(merchantName); + List merchantIdList = wxMerchantMapper.findIdList(merchantQ1); + if (null == merchantIdList || merchantIdList.size() <= 0) { + //throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(),"商户名称查询不到商户。"); + retMerchantIdList.add(-999L); + return retMerchantIdList; + } + retMerchantIdList.addAll(merchantIdList); + isConditiondQquery = true; + } + + //楼层楼座查询商户 + if (null != wxCouponOrder.getBuilding() || null != wxCouponOrder.getFloor()) { + WxShop shopQ = new WxShop(); + shopQ.updateTenantInfo(wxCouponOrder); + if (null != wxCouponOrder.getBuilding()) { + shopQ.setBuilding(Long.parseLong(String.valueOf(wxCouponOrder.getBuilding()))); + } + if (null != wxCouponOrder.getFloor()) { + shopQ.setFloor(Long.parseLong(String.valueOf(wxCouponOrder.getFloor()))); + } + List shopIds = wxShopMapper.findIdList(shopQ); + if (null == shopIds || shopIds.size() <= 0 ){ + //throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(),"楼座楼层提交查询不到店铺信息."); + retMerchantIdList.add(-999L); + return retMerchantIdList; + } + + WxMerchantShop wxMerchantShopQ = new WxMerchantShop(); + wxMerchantShopQ.updateTenantInfo(wxCouponOrder); + wxMerchantShopQ.setShopIdList(shopIds); + wxMerchantShopQ.setIsDel(0); + List buildMerchantIdList = wxMerchantShopMapper.findMerchantIdList(wxMerchantShopQ); + if (null == buildMerchantIdList || buildMerchantIdList.size() <= 0 ){ + //throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(),"楼座楼层对应店铺无商户绑定记录."); + retMerchantIdList.add(-999L); + return retMerchantIdList; + } + retMerchantIdList.retainAll(buildMerchantIdList); + isConditiondQquery = true; + } + + if (isConditiondQquery) { + if (retMerchantIdList.size() <= 0 ) { + //throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(),"根据条件交集未查询到商户记录."); + retMerchantIdList.add(-999L); + return retMerchantIdList; + }else { + return retMerchantIdList; + } + }else { + return null; + } + + } + + private void handleWxCouponOrderBVoQueryParam(WxCouponOrderBVo wxCouponOrder) { + + if(null == wxCouponOrder.getStartDate()) { + wxCouponOrder.setStartDate(DateUtils.getFirstDayForCurrMonth()); + } + wxCouponOrder.setStartDateTimes(wxCouponOrder.getStartDate().getTime()); + wxCouponOrder.setStartDate(null); + + if(null == wxCouponOrder.getEndDate()) { + wxCouponOrder.setEndDate(DateUtils.getLastDayForMonth(new Date())); + } + wxCouponOrder.setEndDateTimes(wxCouponOrder.getEndDate().getTime()); + wxCouponOrder.setEndDate(null); + + String cuserPhone = StringUtils.trimToNull(wxCouponOrder.getcuserPhone()); + if (null != cuserPhone) { + WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.findInfoByPhone(wxCouponOrder, cuserPhone); + if (null != basicInfo) { + wxCouponOrder.setCUserId(basicInfo.getId()); + }else { + //throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(),"手机号查询不到会员信息。"); + wxCouponOrder.setCUserId(-999L); + return; + } + } + + List merchantIdListQueryParam = getMerchantIdsQueryParam(wxCouponOrder); + List merchantProductIds = null; + if (null != merchantIdListQueryParam) { + //查询商户券 + merchantProductIds = wxCouponMerchantMapper.findMerchantProductIds(wxCouponOrder.getTenantId(), merchantIdListQueryParam); + if (null == merchantProductIds || merchantProductIds.size() <= 0) { + //throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(),"商户下查询不到券信息。"); + List tempCouponIds = new ArrayList(); + tempCouponIds.add(-999L); + wxCouponOrder.setCouponIds(tempCouponIds); + return; + } + } + + + List couponIds = null; + String title = StringUtils.trimToNull(wxCouponOrder.getTitle()); + if (null != title || null != wxCouponOrder.getType() || null != wxCouponOrder.getBusiness() || null != wxCouponOrder.getSourceType()) { + WxCoupon wxCouponQuery = new WxCoupon(); + wxCouponQuery.updateTenantInfo(wxCouponOrder); + wxCouponQuery.setTitle(title); + wxCouponQuery.setType(wxCouponOrder.getType()); + wxCouponQuery.setBusiness(wxCouponOrder.getBusiness()); + wxCouponQuery.setSourceType(wxCouponOrder.getSourceType()); + couponIds = wxCouponMapper.findIdList(wxCouponQuery); + if (null == couponIds || couponIds.size() <= 0) { + //throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(),"根据券条件搜索不到券信息。"); + List tempCouponIds = new ArrayList(); + tempCouponIds.add(-999L); + wxCouponOrder.setCouponIds(tempCouponIds); + return; + } + } + + //merchantProducts 和 couponIds 取交集 + if (null != merchantProductIds) { + if (null != couponIds) { + //取交集 + merchantProductIds.retainAll(couponIds); + } + wxCouponOrder.setCouponIds(merchantProductIds); + }else { + if (null != couponIds) { + wxCouponOrder.setCouponIds(couponIds); + } + } + + //核销商户 + String verifyMerchantName = StringUtils.trimToNull(wxCouponOrder.getVerifyMerchantName()); + if (null != verifyMerchantName) { + WxMerchant merchantQ2 = new WxMerchant(); + merchantQ2.updateTenantInfo(wxCouponOrder); + merchantQ2.setName(verifyMerchantName); + List merchantIds = wxMerchantMapper.findIdList(merchantQ2); + if (null == merchantIds || merchantIds.size() <= 0 ){ + //throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(),"核销商户名称查询不到商户记录."); + List tempBUserIds = new ArrayList(); + tempBUserIds.add(-999L); + wxCouponOrder.setBUserIdList(tempBUserIds); + return; + } + + WxMerchantBUser merchantBUserQ = new WxMerchantBUser(); + merchantBUserQ.setMerchantIds(merchantIds); + List bUserIdList = wxMerchantBUserMapper.findIdList(merchantBUserQ); + if (null == bUserIdList || bUserIdList.size() <= 0 ){ + //throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(),"核销商户下查询不到员工信息."); + List tempBUserIds = new ArrayList(); + tempBUserIds.add(-999L); + wxCouponOrder.setBUserIdList(tempBUserIds); + return; + } + wxCouponOrder.setBUserIdList(bUserIdList); + } + + } + @Override public ResultData detailAdminVo(Long couponOrderId,TenantEntity tenantinfo) { @@ -354,40 +677,9 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { if(EnumCouponType.COUPON_DISTRIBUTION.getCode().equals(wxCouponOrder.getCouponType())){ filename = "商品订单"; } - WxMerchant merchantQ = new WxMerchant(); - merchantQ.updateTenantInfo(wxCouponOrder); - List merchantList = wxMerchantMapper.findIdNameList(merchantQ); - Map merchantNameMap = new HashMap(); - if (null != merchantList) { - merchantList.parallelStream().forEach(m -> { - merchantNameMap.put(m.getId(), m.getName()); - }); - } - + handleWxCouponOrderBVoQueryParam(wxCouponOrder); List list = wxCouponOrderMapper.findListOfAdmin(wxCouponOrder); - list.parallelStream().forEach(c -> { - if (c.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode())) { - c.setUpdateDate(null); - } - if (null != c.getSendMerchantId()) { - c.setSendMerchantName(merchantNameMap.get(c.getSendMerchantId())); - } -// if (!c.getMerchantId().equals(0L)) { -// List merchantVoList = c.getMerchantVoList(); -// if (!CollectionUtils.isEmpty(merchantVoList)) { -// StringBuilder shopNumber = new StringBuilder(); -// StringBuilder building = new StringBuilder(); -// WxMerchantVo wxMerchantVo = merchantVoList.get(0); -// List shopVoList = wxMerchantVo.getShopVoList(); -// for (WxShopVo wxShopVo : shopVoList) { -// shopNumber.append(wxShopVo.getShopNumber()).append(";"); -// building.append(wxShopVo.getBuildingName()).append(wxShopVo.getFloorName()).append(";"); -// } -// c.setShopNumber(shopNumber.toString()); -// c.setBuildingStr(building.toString()); -// } -// } - }); + handleQueryResult(list,wxCouponOrder); excelService.exportCsv(list, null, filename, WxCouponOrderBVo.class, filename + ".csv", response, false); } @@ -1027,6 +1319,14 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { logger.error("数据库插入错误:" + e.getMessage()); throw new MallinkException(ErrorCode.DB_FAIL); } + + try { + couponOrder.setSubsidy(subsidyNum); + wxCouponOrderMapper.updateVerifyCouponOrderSubsidy(couponOrder); + } catch (Exception e) { + logger.error("数据库插入错误:" + e.getMessage(),e); + throw new MallinkException(ErrorCode.DB_FAIL); + } } } 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 cca561be8..31949ed5f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -1087,6 +1087,7 @@ public class WxOrderServiceImpl implements WxOrderService { couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.CARD_USING.getCode()); } couponOrder.setCreateDate(curr); + couponOrder.setCreateDateTimes(curr.getTime()); couponOrder.setUpdateDate(curr); couponOrder.setCouponPrice(order.getPayment()); wxCouponOrderMapper.insert(couponOrder); @@ -1193,6 +1194,7 @@ public class WxOrderServiceImpl implements WxOrderService { couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.CARD_USING.getCode()); } couponOrder.setCreateDate(curr); + couponOrder.setCreateDateTimes(curr.getTime()); couponOrder.setUpdateDate(curr); couponOrder.setCouponPrice(order.getPayment()); couponOrder.setComposeOrderType(order.getComposeOrderType()); diff --git a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml index 75df9a432..b22e3a764 100644 --- a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml @@ -252,6 +252,19 @@ + + + + + + + update wx_coupon set is_del = 1 where id = #{id} and tenant_id = #{tenantId} diff --git a/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml index acd6114ca..ec9114635 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml @@ -134,5 +134,43 @@ and cm.product_id = #{productId} and cm.tenant_id = #{tenantId} - + + + + + + + + + + + + diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index cc1143960..7ae56ce22 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -15,6 +15,7 @@ + @@ -27,7 +28,7 @@ - + @@ -38,7 +39,7 @@ `id`,`tenant_id`,`parent_tenant_id`,`coupon_id`,`coupon_type`,`c_user_id`,`owner_id`,`b_user_id`,`order_id`,`expired_time`,`coupon_order_status`,`create_date`,`update_date`,`coupon_price`, `auto_refund`, `verify_type`,`verify_remark`,`pay_vendor`,`send_merchant_id`,`send_merchant_user_id`,`compose_order_type`,`compose_order_id`,`parent_coupon_order_id`,`coupon_number`, - `freight_price`,`shipping_type`,`shipping_address`,`shipping_status`,`delivery_info` + `freight_price`,`shipping_type`,`shipping_address`,`shipping_status`,`delivery_info`,`subsidy` @@ -241,6 +242,12 @@ and `parent_tenant_id` = #{parentTenantId} + + + update wx_coupon_order + set `subsidy` = #{subsidy} + where id=#{id} + - select - - FROM ( - SELECT wcm.product_id,wcm.merchant_id,COUNT(1) AS mc - FROM wx_coupon_merchant wcm - WHERE STATUS = 0 - - and wcm.`tenant_id` = #{tenantId} - - - and wcm.`parent_tenant_id` = #{parentTenantId} - - GROUP BY product_id) couc - RIGHT JOIN ( - SELECT co.id,co.tenant_id,co.parent_tenant_id,co.coupon_id,co.c_user_id,co.b_user_id,co.order_id,co.coupon_type, - co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price,co.auto_refund,co.verify_type,co.verify_remark,co.pay_vendor - ,co.send_merchant_id,co.`freight_price`,co.`shipping_type`,co.`shipping_address`,co.`shipping_status`,co.`delivery_info` - FROM wx_coupon_order co WHERE 1=1 - - and co.`tenant_id` = #{tenantId} - - - and co.`parent_tenant_id` = #{parentTenantId} - - ) co - ON co.coupon_id = couc.product_id - LEFT JOIN wx_c_user_basic_info cu ON cu.id=co.c_user_id - LEFT JOIN wx_coupon c ON c.id = co.coupon_id - LEFT JOIN wx_merchant m1 ON m1.id = couc.merchant_id - LEFT JOIN wx_merchant_subsidy ms ON co.id = ms.coupon_order_id AND ms.type = 1 - LEFT JOIN wx_merchant_b_user mbu ON mbu.id = co.b_user_id LEFT JOIN wx_merchant m2 ON m2.id = mbu.merchant_id - LEFT JOIN wx_coupon_action_log cal ON cal.coupon_order_id = co.id AND cal.coupon_id = co.coupon_id - where 1=1 + 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.expired_time,co.coupon_order_status,co.order_id, + co.create_date,co.update_date,co.coupon_price, co.verify_type, co.verify_remark,co.pay_vendor, + co.`freight_price`,co.`shipping_type`,co.`shipping_address`,co.`shipping_status`,co.`delivery_info`,co.send_merchant_id,co.subsidy + FROM wx_coupon_order co where co.`tenant_id` = #{tenantId} and co.coupon_type = #{couponType} @@ -956,16 +905,9 @@ and co.coupon_type < 100 - - and co.`tenant_id` = #{tenantId} - and co.`parent_tenant_id` = #{parentTenantId} - - and cu.`phone` = #{cUserPhone} - - and co.coupon_order_status = #{couponOrderStatus} @@ -978,27 +920,22 @@ and co.`shipping_status` = #{shippingStatus} - - - and (case when couc.mc=1 - then - m1.name - - else'[多商户通用]' end) - like concat('%', #{merchantName},'%') - - AND co.create_date > #{startDate,jdbcType=TIMESTAMP} + + + AND co.create_date_times > #{startDateTimes} + AND co.create_date < #{endDate,jdbcType=TIMESTAMP} + + AND co.create_date_times < #{endDateTimes} + + AND co.update_date > #{verifyStartDate,jdbcType=TIMESTAMP} @@ -1016,39 +953,24 @@ and c.id = #{couponId} - - and c.title like concat('%', #{title},'%') - - - and c.`type` = #{type} - - - and c.business = #{business} - - - and c.`source_type` = #{sourceType} + + and co.c_user_id = #{cUserId} - - and bu.verify_merchant_name = #{verifyMerchantName} + + + and co.coupon_id in + + #{couponIdItem} + - - and co.coupon_id in( - select cm.product_id from wx_merchant_shop ms left join wx_merchant m on ms.merchant_id=m.id - left join wx_shop s on ms.shop_id=s.id - left join wx_coupon_merchant cm on ms.merchant_id=cm.merchant_id - where ms.is_del=0 and s.building=#{building} - - and ms.`tenant_id` = #{tenantId} - - - and ms.`parent_tenant_id` = #{parentTenantId} - - - and s.floor=#{floor} - - ) + + and co.b_user_id in + + #{bUserIdItem} + + order by ${sortColumns} order by co.create_date desc,co.id desc diff --git a/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml index 5305e0662..f8ef476eb 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml @@ -78,6 +78,14 @@ #{idItem} + + + and merchant_id in + + #{merchantIdItem} + + + order by ${sortColumns} @@ -88,6 +96,24 @@ from wx_merchant_b_user + + + + + + + + + diff --git a/mallinkService/src/main/resources/mapper/WxShopMapper.xml b/mallinkService/src/main/resources/mapper/WxShopMapper.xml index 8cb2f3b55..7ba72ee6e 100644 --- a/mallinkService/src/main/resources/mapper/WxShopMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxShopMapper.xml @@ -146,6 +146,12 @@ + +