diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxMerchantTradeDailyController.java b/mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxMerchantTradeDailyController.java index 75e4592ca..69318c152 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxMerchantTradeDailyController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxMerchantTradeDailyController.java @@ -30,14 +30,6 @@ public class WxMerchantTradeDailyController extends BaseController { @Autowired private WxMerchantTradeDailyService wxMerchantTradeDailyService; - @ApiOperation("获得指定日期的解单,默认不传reportDate为当天") - @GetMapping("/getVolume") - @SystemControllerLog(description = "解单-获得指定日期的解单") - public ResultData getVolume(WxMerchantTradeDaily wxMerchantTradeDaily) { - wxMerchantTradeDaily.setTenantId(getTenantId()); - return wxMerchantTradeDailyService.getVolume(wxMerchantTradeDaily,getUser().getId()); - } - @ApiOperation("获得解单列表") @GetMapping("/list") @@ -45,18 +37,14 @@ public class WxMerchantTradeDailyController extends BaseController { @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 WxMerchantTradeDailyVo wxMerchantTradeDaily, Integer pageNum, Integer pageSize) { + public ResultData list(@ModelAttribute WxMerchantTradeDaily wxMerchantTradeDaily, Integer pageNum, Integer pageSize) { logger.debug("[" + getIpAddr() + "] WxMerchantTradeDailyController::listYesterday"); if (wxMerchantTradeDaily == null) - wxMerchantTradeDaily = new WxMerchantTradeDailyVo(); + wxMerchantTradeDaily = new WxMerchantTradeDaily(); wxMerchantTradeDaily.setTenantId(getTenantId()); - if (wxMerchantTradeDaily.getReportDate() == null) { - SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); - wxMerchantTradeDaily.setReportDate(fmt.format(new Date())); - } - wxMerchantTradeDaily.setSortColumns(BaseEntity.SortField.MerchantId_DESC); + wxMerchantTradeDaily.setSortColumns(BaseEntity.SortField.ReportDate_DESC,BaseEntity.SortField.MerchantId_DESC); PageInfo page = wxMerchantTradeDailyService.listAsPageVo(wxMerchantTradeDaily, pageNum, pageSize); return new ResultData(page); @@ -81,7 +69,7 @@ public class WxMerchantTradeDailyController extends BaseController { @ApiOperation("更新解单数据") @PostMapping("/update") @SystemControllerLog(description = "商户-更新解单数据") - public ResultData update(@RequestBody WxMerchantTradeDailyVo wxMerchantTradeDaily) { + public ResultData update(@RequestBody WxMerchantTradeDaily wxMerchantTradeDaily) { logger.debug("[" + getIpAddr() + "] WxMerchantTradeDailyController::updateYesterday"); if (wxMerchantTradeDaily == null || wxMerchantTradeDaily.getMerchantId() == null || @@ -98,7 +86,7 @@ public class WxMerchantTradeDailyController extends BaseController { @ApiOperation("查询解单数据") @GetMapping("/queryTradeDaily") @SystemControllerLog(description = "商户-查询解单数据") - public ResultData queryTradeDaily(@ModelAttribute WxMerchantTradeDailyVo wxMerchantTradeDaily) { + public ResultData queryTradeDaily(@ModelAttribute WxMerchantTradeDaily wxMerchantTradeDaily) { logger.debug("[" + getIpAddr() + "] WxMerchantTradeDailyController::queryTradeDaily"); wxMerchantTradeDaily.setTenantId(getTenantId()); return wxMerchantTradeDailyService.queryTradeDaily(wxMerchantTradeDaily); @@ -106,17 +94,13 @@ public class WxMerchantTradeDailyController extends BaseController { @GetMapping("exportData") @SystemControllerLog(description = "商户解单数据-导出数据") - public void exportData(@ModelAttribute WxMerchantTradeDailyVo wxMerchantTradeDaily, HttpServletRequest request, HttpServletResponse response) { + public void exportData(@ModelAttribute WxMerchantTradeDaily wxMerchantTradeDaily, HttpServletRequest request, HttpServletResponse response) { logger.debug("[" + getIpAddr() + "] WxMerchantTradeDailyController::exportData"); if (null == wxMerchantTradeDaily) { - wxMerchantTradeDaily = new WxMerchantTradeDailyVo(); + wxMerchantTradeDaily = new WxMerchantTradeDaily(); } - wxMerchantTradeDaily.setTenantId(getTenantId()); - if (wxMerchantTradeDaily.getReportDate() == null) { - SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); - wxMerchantTradeDaily.setReportDate(fmt.format(new Date())); - } - wxMerchantTradeDaily.setSortColumns(BaseEntity.SortField.MerchantId_DESC); + + wxMerchantTradeDaily.setSortColumns(BaseEntity.SortField.ReportDate_DESC,BaseEntity.SortField.MerchantId_DESC); wxMerchantTradeDailyService.exportData(wxMerchantTradeDaily, request, response); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/BaseEntity.java b/mallinkService/src/main/java/com/iformall/domain/po/BaseEntity.java index 08d80ff93..e45f23d2e 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/BaseEntity.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/BaseEntity.java @@ -166,6 +166,12 @@ public class BaseEntity implements Serializable { Date_ASC("`date` ASC"), Date_DESC("`date` DESC"), + + TradeAmt_ASC("`trade_amt` ASC"), + TradeAmt_DESC("`trade_amt` DESC"), + + ReportDate_ASC("`report_date` ASC"), + ReportDate_DESC("`report_date` DESC"), ; private String value; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantTradeDaily.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantTradeDaily.java index 03f0eeb4b..843192584 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantTradeDaily.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantTradeDaily.java @@ -59,15 +59,18 @@ public class WxMerchantTradeDaily extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "凭证", name = "proof") private String proof; @io.swagger.annotations.ApiModelProperty(value = "月份如2019-05", name = "month") + @Transient private String month; @Transient - private String starttime; + private String startTime; @Transient - private String endtime; + private String endTime; + @Transient + private String merchantName; public Integer getTradeAmtInteger(){ if (StringUtils.isBlank(tradeAmt)){ 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 07256d7c1..bdf93e847 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantTradeDailyVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantTradeDailyVo.java @@ -2,6 +2,8 @@ package com.iformall.domain.vo; import cn.afterturn.easypoi.excel.annotation.Excel; import com.iformall.domain.po.BaseEntity; +import com.iformall.enums.EnumBusiness; +import com.iformall.enums.EnumSubBusiness; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; @@ -12,6 +14,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; @Data @ToString(callSuper = true) @@ -91,33 +94,58 @@ public class WxMerchantTradeDailyVo extends BaseEntity { private String proof; + @Transient + private List shopVos; + + @Transient + @Excel(name = "商铺", width = 20, orderNum = "10") + private String shopsStr; + @Transient private Integer isToday; - public static enum Field { - Id_ASC("`id` ASC"), Id_DESC("`id` DESC"), - TenantId_ASC("`tenant_id` ASC"), TenantId_DESC("`tenant_id` DESC"), - MerchantId_ASC("`merchant_id` ASC"), MerchantId_DESC("`merchant_id` DESC"), - TradeAmt_ASC("`trade_amt` ASC"), TradeAmt_DESC("`trade_amt` DESC"), - CreateDate_ASC("`create_date` ASC"), CreateDate_DESC("`create_date` DESC") - ; - private String value; - - Field(String value) { - this.value = value; - } - public String getValue() { - return value; + private Integer businessId; + private Integer subBusinessId; + + @Transient + @Excel(name = "业态", width = 20, orderNum = "8") + @io.swagger.annotations.ApiModelProperty(value="经营业态ID:参照wx_business表",name="businessId") + private String businessName; + + @Transient + @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 void setCol(String value) { - this.value = value; + public String getBusinessName() { + if (businessId != null) { + EnumBusiness e = EnumBusiness.getEnum(businessId); + if (e != null) return e.getMessage(); + else return null; + } else { + return null; } + } - @Override - public String toString() { - return this.getValue(); + public String getSubBusinessName() { + if (subBusinessId != null) { + EnumSubBusiness e = EnumSubBusiness.getEnum(subBusinessId); + if (e != null) return e.getMessage(); + else return null; + } else { + return null; } } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantTradeDailyMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantTradeDailyMapper.java index f1ec40aa7..2dde4eb8f 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantTradeDailyMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantTradeDailyMapper.java @@ -11,9 +11,7 @@ public interface WxMerchantTradeDailyMapper extends CommonMapper findListOfWeek(WxMerchantTradeDaily wxMerchantTradeDaily); - List findListVo(WxMerchantTradeDailyVo wxMerchantTradeDaily); - - List findListVoOfMonth(WxMerchantTradeDaily wxMerchantTradeDaily); + List findVoList(WxMerchantTradeDaily wxMerchantTradeDaily); List findTotalListOfMonth(WxMerchantTradeDaily wxMerchantTradeDaily); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantTradeDailyService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantTradeDailyService.java index d156ad928..13a66235b 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantTradeDailyService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantTradeDailyService.java @@ -81,11 +81,11 @@ public interface WxMerchantTradeDailyService { * @param pageSize * @return */ - PageInfo listAsPageVo(WxMerchantTradeDailyVo record, Integer pageIndex, Integer pageSize); + PageInfo listAsPageVo(WxMerchantTradeDaily record, Integer pageIndex, Integer pageSize); - ResultData update(WxMerchantTradeDailyVo tradeDailyVo); + ResultData update(WxMerchantTradeDaily tradeDailyVo); - ResultData queryTradeDaily(WxMerchantTradeDailyVo wxMerchantTradeDaily); + ResultData queryTradeDaily(WxMerchantTradeDaily wxMerchantTradeDaily); - void exportData(WxMerchantTradeDailyVo wxMerchantTradeDaily, HttpServletRequest request, HttpServletResponse response); + void exportData(WxMerchantTradeDaily wxMerchantTradeDaily, HttpServletRequest request, HttpServletResponse response); } 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 1eafc07b2..5c0cc42bb 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantTradeDailyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantTradeDailyServiceImpl.java @@ -12,6 +12,7 @@ import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.po.WxMerchantTradeDaily; import com.iformall.domain.vo.WxMerchantTradeDailyVo; import com.iformall.mapper.WxMerchantTradeDailyMapper; +import com.iformall.mapper.WxShopMapper; import com.iformall.service.*; import com.iformall.utils.DateUtils; import org.slf4j.Logger; @@ -44,6 +45,10 @@ public class WxMerchantTradeDailyServiceImpl implements WxMerchantTradeDailyServ @Autowired ExcelService excelService; + @Autowired + WxShopMapper wxShopMapper; + + @Override public PageInfo listAsPage(WxMerchantTradeDaily record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxMerchantTradeDailyMapper.findList(record)); @@ -126,74 +131,65 @@ public class WxMerchantTradeDailyServiceImpl implements WxMerchantTradeDailyServ @Override - public PageInfo listAsPageVo(WxMerchantTradeDailyVo record, Integer pageIndex, Integer pageSize) { - return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxMerchantTradeDailyMapper.findListVo(record)); + public PageInfo listAsPageVo(WxMerchantTradeDaily record, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxMerchantTradeDailyMapper.findVoList(record)); } @Override - public ResultData update(WxMerchantTradeDailyVo tradeDailyVo) { + public ResultData update(WxMerchantTradeDaily tradeDaily) { WxMerchantTradeDaily wxMerchantTradeDaily = new WxMerchantTradeDaily(); - wxMerchantTradeDaily.setMerchantId(tradeDailyVo.getMerchantId()); - wxMerchantTradeDaily.setReportDate(tradeDailyVo.getReportDate()); + wxMerchantTradeDaily.setMerchantId(tradeDaily.getMerchantId()); + wxMerchantTradeDaily.setReportDate(tradeDaily.getReportDate()); List tradeList = wxMerchantTradeDailyMapper.findList(wxMerchantTradeDaily); if (tradeList.size() > 0) { wxMerchantTradeDaily = tradeList.get(0); wxMerchantTradeDaily.setUpdateDate(new Date()); - wxMerchantTradeDaily.setTradeAmt(tradeDailyVo.getTradeAmt()+""); - wxMerchantTradeDaily.setTradeCount(tradeDailyVo.getTradeCount()); - wxMerchantTradeDaily.setProof(tradeDailyVo.getProof()); + wxMerchantTradeDaily.setTradeAmt(tradeDaily.getTradeAmt()+""); + wxMerchantTradeDaily.setTradeCount(tradeDaily.getTradeCount()); + wxMerchantTradeDaily.setProof(tradeDaily.getProof()); wxMerchantTradeDailyMapper.updateByPrimaryKeySelective(wxMerchantTradeDaily); return new ResultData(wxMerchantTradeDaily); } final IdWorker idWorker = IdWorker.get(); wxMerchantTradeDaily.setId(idWorker.nextId()); - wxMerchantTradeDaily.setTenantId(tradeDailyVo.getTenantId()); - wxMerchantTradeDaily.setMerchantId(tradeDailyVo.getMerchantId()); - wxMerchantTradeDaily.setTradeAmt(tradeDailyVo.getTradeAmt()+""); + wxMerchantTradeDaily.setTenantId(tradeDaily.getTenantId()); + wxMerchantTradeDaily.setMerchantId(tradeDaily.getMerchantId()); + wxMerchantTradeDaily.setTradeAmt(tradeDaily.getTradeAmt()+""); wxMerchantTradeDaily.setCreateDate(new Date()); wxMerchantTradeDaily.setUpdateDate(new Date()); - wxMerchantTradeDaily.setTradeCount(tradeDailyVo.getTradeCount()); - wxMerchantTradeDaily.setProof(tradeDailyVo.getProof()); + wxMerchantTradeDaily.setTradeCount(tradeDaily.getTradeCount()); + wxMerchantTradeDaily.setProof(tradeDaily.getProof()); wxMerchantTradeDailyMapper.insert(wxMerchantTradeDaily); return new ResultData(Result.SUCCESS); } @Override - public ResultData queryTradeDaily(WxMerchantTradeDailyVo tradeDailyVo) { + public ResultData queryTradeDaily(WxMerchantTradeDaily tradeDaily) { WxMerchantTradeDaily wxMerchantTradeDaily = new WxMerchantTradeDaily(); - wxMerchantTradeDaily.setMerchantId(tradeDailyVo.getMerchantId()); - wxMerchantTradeDaily.setReportDate(tradeDailyVo.getReportDate()); + wxMerchantTradeDaily.setMerchantId(tradeDaily.getMerchantId()); + wxMerchantTradeDaily.setReportDate(tradeDaily.getReportDate()); List tradeList = wxMerchantTradeDailyMapper.findList(wxMerchantTradeDaily); wxMerchantTradeDaily = tradeList.size() > 0 ? tradeList.get(0) : new WxMerchantTradeDaily(); return new ResultData(wxMerchantTradeDaily); } @Override - public void exportData(WxMerchantTradeDailyVo wxMerchantTradeDailyVo, HttpServletRequest request, HttpServletResponse response) { + public void exportData(WxMerchantTradeDaily tradeDaily, HttpServletRequest request, HttpServletResponse response) { //没有商户ID导出全部数据 - String name = "解单数据"; - if (wxMerchantTradeDailyVo.getMerchantId() == null) { - String title = "商户解单数据"; - List list = wxMerchantTradeDailyMapper.findListVo(wxMerchantTradeDailyVo); - list.parallelStream().forEach(t -> t.setReportDate(wxMerchantTradeDailyVo.getReportDate())); - excelService.exportExcel(list, title, name, WxMerchantTradeDailyVo.class, name + ".xlsx", response, false); - } else { - WxMerchantTradeDaily wxMerchantTradeDaily = new WxMerchantTradeDaily(); - wxMerchantTradeDaily.setTenantId(wxMerchantTradeDailyVo.getTenantId()); - wxMerchantTradeDaily.setMerchantId(wxMerchantTradeDailyVo.getMerchantId()); - String starttime = DateUtils.getTimeBefore(29, new Date()); - String endtime = DateUtils.getSystemTime("yyyy-MM-dd"); - wxMerchantTradeDaily.setStarttime(starttime); - wxMerchantTradeDaily.setEndtime(endtime); - List list = wxMerchantTradeDailyMapper.findListVoOfMonth(wxMerchantTradeDaily); - String title = "近30天解单数据"; - excelService.exportExcel(list, title, name, WxMerchantTradeDailyVo.class, name + ".xlsx", response, false); - } + List list = wxMerchantTradeDailyMapper.findVoList(tradeDaily); + + list.stream().forEach(m->{ + //商铺信息 + m.setShopVos(wxShopMapper.findShopVoList(m.getMerchantId())); + }); + //商铺信息 + + excelService.exportExcel(list, "商户解单数据", "商户解单数据", WxMerchantTradeDailyVo.class, "商户解单数据.xlsx", response, false); } @Override @@ -204,8 +200,11 @@ public class WxMerchantTradeDailyServiceImpl implements WxMerchantTradeDailyServ return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND); WxMerchantTradeDaily wxMerchantTradeDaily = new WxMerchantTradeDaily(); wxMerchantTradeDaily.setMerchantId(merchantId); - - List recordList = wxMerchantTradeDailyMapper.findListVoOfMonth(wxMerchantTradeDaily); + String startTime = DateUtils.getTimeBefore(29, new Date()); + String endTime = DateUtils.getSystemTime("yyyy-MM-dd"); + wxMerchantTradeDaily.setStartTime(startTime); + wxMerchantTradeDaily.setEndTime(endTime); + List recordList = wxMerchantTradeDailyMapper.findVoList(wxMerchantTradeDaily); Map recordMap = recordList.stream().collect(Collectors.toMap(WxMerchantTradeDailyVo::getReportDate, r -> r)); List tradeList = new ArrayList<>(); diff --git a/mallinkService/src/main/resources/mapper/WxMerchantTradeDailyMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantTradeDailyMapper.xml index 336773e69..9c8968cf6 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantTradeDailyMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantTradeDailyMapper.xml @@ -23,43 +23,40 @@ and `id` = #{id} - and `tenant_id` = #{tenantId} - - and `merchant_id` = #{merchantId} - + and `merchant_id` = #{merchantId} and `b_user_id` = #{bUserId} - - and `trade_amt` = #{tradeAmt} - + and `trade_amt` = #{tradeAmt} and `create_date` = #{createDate} - + and `update_date` = #{updateDate} - + and `report_date` = #{reportDate} + and date_format(create_date,'%Y-%m')=#{month} + and id in @@ -94,7 +91,6 @@ - @@ -104,49 +100,26 @@ + + + + + + - - - mtd.id as id, - m.tenant_id as tenant_id, m.id as merchant_id,m.name as merchant_name, - mtd.b_user_id as b_user_id, mtd.trade_amt as trade_amt, mtd.create_date as create_date,mtd.update_date as update_date,mtd.report_date as report_date, - mbu.name as b_user_name, mbu.phone as b_user_phone, - trade_count,proof + mtd.id as id, mtd.b_user_id as b_user_id, mtd.trade_amt, mtd.report_date, mtd.trade_count, mtd.proof, + mtd.create_date as create_date, mtd.update_date as update_date, + m.tenant_id as tenant_id, m.id as merchant_id, m.name as merchant_name, m.business_id, m.sub_business_id, + mbu.name as b_user_name, mbu.phone as b_user_phone - - - select from wx_merchant_trade_daily mtd inner join wx_merchant m on mtd.merchant_id = m.id @@ -160,12 +133,16 @@ and mtd.merchant_id = #{merchantId} - - - and mtd.report_date between #{starttime} and #{endtime} + + + and m.name like concat('%', #{merchantName},'%') - order by mtd.create_date desc LIMIT 30 + + and mtd.report_date between #{startTime} and #{endTime} + + + order by ${sortColumns}