From e539aa222408b98230b76f2c11acdfb49da8c5fd Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Wed, 12 Apr 2023 19:57:29 +0800 Subject: [PATCH] fix trade daily --- .../domain/vo/WxMerchantTradeDailyVo.java | 53 ++------ .../impl/WxMerchantTradeDailyServiceImpl.java | 128 ++++++++++++++++-- .../service/impl/WxPayOrderServiceImpl.java | 2 +- 3 files changed, 125 insertions(+), 58 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantTradeDailyVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantTradeDailyVo.java index ecfe08289..af40f9ef9 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantTradeDailyVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantTradeDailyVo.java @@ -50,6 +50,9 @@ public class WxMerchantTradeDailyVo extends TenantEntity { @Excel(name = "解单日期", width = 20, orderNum = "1") @io.swagger.annotations.ApiModelProperty(value = "解单日期", name = "reportDate") private String reportDate; + + @io.swagger.annotations.ApiModelProperty(value = "解单日期类型", name = "dateType") + private Integer dateType; @Excel(name = "商户名称", width = 20, orderNum = "2") @io.swagger.annotations.ApiModelProperty(value="商户名",name="merchantName") @@ -63,10 +66,10 @@ public class WxMerchantTradeDailyVo extends TenantEntity { this.bUserName = bUserName; } - @Excel(name = "操作人", width = 20, orderNum = "6") + @Excel(name = "提交商户名", width = 20, orderNum = "6") @io.swagger.annotations.ApiModelProperty(value = "b端用户姓名", name = "bUserName") private String bUserName; - + public String getbUserPhone() { return bUserPhone; } @@ -74,10 +77,13 @@ public class WxMerchantTradeDailyVo extends TenantEntity { public void setbUserPhone(String bUserPhone) { this.bUserPhone = bUserPhone; } - - @Excel(name = "联系电话", width = 20, orderNum = "7") + @Excel(name = "商户联系电话", width = 20, orderNum = "7") @io.swagger.annotations.ApiModelProperty(value = "B端用户手机号", name = "bUserPhone") private String bUserPhone; + + @Excel(name = "提交商管名", width = 20, orderNum = "8") + @io.swagger.annotations.ApiModelProperty(value = "a端姓名", name = "mallUserName") + private String mallUserName; @Excel(name = "交易笔数", width = 20, orderNum = "4") @io.swagger.annotations.ApiModelProperty(value = "交易笔数", name = "tradeCount") @@ -86,47 +92,8 @@ public class WxMerchantTradeDailyVo extends TenantEntity { private String proof; - @TableField(exist = false) - private List shopVos; - - @TableField(exist = false) - @Excel(name = "商铺", width = 20, orderNum = "10") - private String shopsStr; - @TableField(exist = false) private Integer isToday; - private Integer businessId; - private Integer subBusinessId; - - @TableField(exist = false) - @Excel(name = "业态", width = 20, orderNum = "8") - @io.swagger.annotations.ApiModelProperty(value="经营业态ID:参照wx_business表",name="businessId") - private String businessName; - - @TableField(exist = false) - @Excel(name = "子业态", width = 20, orderNum = "9") - @io.swagger.annotations.ApiModelProperty(value="子业态",name="subBusinessId") - private String subBusinessName; - - public String getShopsStr() { - if (shopVos != null && shopVos.size() > 0) { - return String.join("\n", - shopVos.stream().map( - s->{return s.getBuildingName()+"-"+s.getFloorName()+"-"+s.getShopNumber();} - ).collect(Collectors.toList())); - } else { - return null; - } - } - -// public String getBusinessName() { -// return EnumBusiness.getEnumMessage(businessId); -// } - - public String getSubBusinessName() { - return EnumSubBusiness.getEnumMessage(subBusinessId); - } - } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantTradeDailyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantTradeDailyServiceImpl.java index feb335848..52e91ddde 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantTradeDailyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantTradeDailyServiceImpl.java @@ -18,6 +18,7 @@ import com.iformall.domain.vo.WxCouponOrderBVo; import com.iformall.domain.vo.WxMerchantTradeDailyVo; import com.iformall.enums.EnumTradeDailyDateType; import com.iformall.exception.MallinkException; +import com.iformall.mapper.WxMerchantMapper; import com.iformall.mapper.WxMerchantTradeDailyHistoryMapper; import com.iformall.mapper.WxMerchantTradeDailyMapper; import com.iformall.mapper.WxShopMapper; @@ -26,6 +27,7 @@ import com.iformall.utils.DateUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; @@ -41,23 +43,31 @@ public class WxMerchantTradeDailyServiceImpl implements WxMerchantTradeDailyServ @Autowired WxMerchantTradeDailyMapper wxMerchantTradeDailyMapper; + @Lazy @Autowired WxMerchantBUserService wxMerchantBUserService; + @Lazy @Autowired WxMerchantService wxMerchantService; + @Lazy @Autowired WxMallService wxMallService; @Autowired ExcelService excelService; + @Lazy @Autowired WxShopService wxShopService; @Autowired WxMerchantTradeDailyHistoryMapper wxMerchantTradeDailyHistoryMapper; + + @Lazy + @Autowired + MallUserInfoService mallUserInfoService; @Override @@ -146,16 +156,110 @@ public class WxMerchantTradeDailyServiceImpl implements WxMerchantTradeDailyServ @Override public PageInfo listAsPageVo(WxMerchantTradeDaily record, Integer pageIndex, Integer pageSize) { -// PageInfo tradeDailyPage = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxMerchantTradeDailyMapper.findList(record)); -// PageInfo retPageInfo = new PageInfo(); -// retPageInfo.setPageNum(pageIndex); -// retPageInfo.setPageSize(pageSize); -// retPageInfo.setPages(pageInfo.getPages()); -// retPageInfo.setTotal(pageInfo.getTotal()); -// retPageInfo.setList(handleQueryResult(false,pageInfo.getList(), wxCouponOrderBVo)); -// -// return new ResultData(retPageInfo); - return null; + PageInfo pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxMerchantTradeDailyMapper.findList(record)); + PageInfo retPageInfo = new PageInfo(); + retPageInfo.setPageNum(pageIndex); + retPageInfo.setPageSize(pageSize); + retPageInfo.setPages(pageInfo.getPages()); + retPageInfo.setTotal(pageInfo.getTotal()); + retPageInfo.setList(toVoList(pageInfo.getList(), record)); + return retPageInfo; + } + + private List toVoList(List list,TenantEntity tenantEntity) { + if (null == list || list.size() <= 0 ){ + return null; + } + + List merchantIdList = new ArrayList(); + List merchantBUserIdList = new ArrayList(); + List mallUserIdList = new ArrayList(); + for ( int i = 0 ; i < list.size() ; i++ ) { + WxMerchantTradeDaily td = list.get(i); + if (null != td.getMerchantId() && (!merchantIdList.contains(td.getMerchantId()))) { + merchantIdList.add(td.getMerchantId()); + } + + if (null != td.getbUserId() && (!merchantBUserIdList.contains(td.getbUserId()))) { + merchantBUserIdList.add(td.getbUserId()); + } + + if (null != td.getMallUserId() && (!mallUserIdList.contains(td.getMallUserId()))) { + mallUserIdList.add(td.getMallUserId()); + } + } + + Map merchantMap = new HashMap(); + if (merchantIdList.size() > 0 ){ + WxMerchant mq = new WxMerchant(); + mq.updateTenantInfo(tenantEntity); + mq.setIds(merchantIdList); + merchantMap = wxMerchantService.findMerchantMap(mq); + } + + Map merchantBUserMap = new HashMap(); + if (merchantBUserIdList.size() > 0) { + WxMerchantBUser mbu = new WxMerchantBUser(); + mbu.updateTenantInfo(tenantEntity); + mbu.setIds(merchantBUserIdList); + List buserList = wxMerchantBUserService.findList(mbu); + if (null != buserList) { + for (int i = 0 ; i < buserList.size(); i++) { + WxMerchantBUser mu = buserList.get(i); + merchantBUserMap.put(mu.getId(), mu); + } + } + } + + Map mallUserMap = new HashMap(); + if (mallUserIdList.size() > 0 ) { + MallUserInfo mui = new MallUserInfo(); + mui.updateTenantInfo(tenantEntity); + mui.setIds(mallUserIdList); + List mallUserInfoList = mallUserInfoService.findList(mui); + if (null != mallUserInfoList) { + for (int i = 0 ; i < mallUserInfoList.size(); i++) { + MallUserInfo _mui = mallUserInfoList.get(i); + mallUserMap.put(_mui.getId(),_mui); + } + } + } + List retList = new ArrayList(); + for ( int i = 0 ; i < list.size() ; i++ ) { + WxMerchantTradeDaily td = list.get(i); + WxMerchantTradeDailyVo vo = new WxMerchantTradeDailyVo(); + vo.setId(td.getId()); + vo.setMerchantId(td.getMerchantId()); + vo.setBUserId(td.getbUserId()); + vo.setTradeAmt(td.getTradeAmtInteger()); + vo.setCreateDate(td.getCreateDate()); + vo.setUpdateDate(td.getUpdateDate()); + vo.setReportDate(td.getReportDate()); + vo.setDateType(td.getDateType()); + if (null != td.getMerchantId()) { + WxMerchant m = merchantMap.get(td.getMerchantId()); + if (null != m) { + vo.setMerchantName(m.getName()); + } + } + if (null != td.getbUserId()) { + WxMerchantBUser mbu = merchantBUserMap.get(td.getbUserId()); + if (null != mbu) { + vo.setbUserName(mbu.getName()); + vo.setbUserPhone(mbu.getPhone()); + } + } + if (null != td.getMallUserId()) { + MallUserInfo mui = mallUserMap.get(td.getMallUserId()); + if (null != mui) { + vo.setMallUserName(mui.getName()); + } + } + vo.setTradeCount(td.getTradeCount()); + vo.setProof(td.getProof()); + retList.add(vo); + } + return retList; } @Override @@ -287,10 +391,6 @@ public class WxMerchantTradeDailyServiceImpl implements WxMerchantTradeDailyServ List list = new ArrayList(); if (null != page && null != page.getList()) { list = page.getList(); - list.stream().forEach(m -> { - //商铺信息 - m.setShopVos(wxShopService.findMerchantShopVoList(m,m.getMerchantId())); - }); //商铺信息 } excelService.exportExcel(list, "商户解单数据", "商户解单数据", WxMerchantTradeDailyVo.class, "商户解单数据.xlsx", response, false); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index 4e109562c..711f6be25 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -215,7 +215,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } } - @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + @Transactional(propagation = Propagation.NESTED, readOnly = false, rollbackFor = {Exception.class}) public boolean handelPress(WxCoupon coupon,WxOrder order) { //如果是砍价,并且是付款扣库存 if (null != coupon && coupon.getType().intValue() == EnumCouponType.COUPON_PRESS.getCode().intValue()