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 d7e015ad3..38a9e3f50 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxMerchantTradeDailyController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxMerchantTradeDailyController.java @@ -5,27 +5,21 @@ import com.iformall.annotation.SystemControllerLog; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; -import com.iformall.domain.po.WxMerchant; -import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.po.WxMerchantTradeDaily; import com.iformall.domain.vo.WxMerchantTradeDailyVo; -import com.iformall.service.WxMerchantBUserService; -import com.iformall.service.WxMerchantService; import com.iformall.service.WxMerchantTradeDailyService; -import com.iformall.utils.DateUtils; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.map.LinkedMap; -import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.Date; @RestController @RequestMapping("wxMerchantTradeDaily") @@ -109,4 +103,16 @@ public class WxMerchantTradeDailyController extends BaseController { return wxMerchantTradeDailyService.queryTradeDaily(wxMerchantTradeDaily); } + @GetMapping("exportData") + @SystemControllerLog(description = "商户解单数据-导出数据") + public void exportData(@ModelAttribute WxMerchantTradeDailyVo wxMerchantTradeDaily, HttpServletRequest request, HttpServletResponse response) { + logger.debug("[" + getIpAddr() + "] WxMerchantTradeDailyController::exportData"); + if (null == wxMerchantTradeDaily) { + wxMerchantTradeDaily = new WxMerchantTradeDailyVo(); + } + wxMerchantTradeDaily.setTenantId(getTenantId()); + wxMerchantTradeDaily.setSortColumns(WxMerchantTradeDailyVo.Field.MerchantId_DESC); + wxMerchantTradeDailyService.exportData(wxMerchantTradeDaily, request, response); + } + } 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 c4ca7d28d..1b9439691 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantTradeDailyVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxMerchantTradeDailyVo.java @@ -1,5 +1,6 @@ package com.iformall.domain.vo; +import cn.afterturn.easypoi.excel.annotation.Excel; import com.iformall.domain.po.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; @@ -33,25 +34,34 @@ public class WxMerchantTradeDailyVo extends BaseEntity { private Long merchantId; @io.swagger.annotations.ApiModelProperty(value = "b用户id", name = "bUserId") private Long bUserId; + + @Excel(name = "解单金额(元)", width = 20, orderNum = "3") @io.swagger.annotations.ApiModelProperty(value = "交易额", name = "tradeAmt") private Integer tradeAmt; @io.swagger.annotations.ApiModelProperty(value = "解单提交日期", name = "createDate") private Date createDate; + + @Excel(name = "上报时间", width = 20, orderNum = "5", format = "yyyy-MM-dd HH:mm:ss") @io.swagger.annotations.ApiModelProperty(value = "解单更新日期", name = "updateDate") private Date updateDate; + + @Excel(name = "解单日期", width = 20, orderNum = "1", format = "yyyy-MM-dd") @io.swagger.annotations.ApiModelProperty(value = "解单日期", name = "reportDate") private String reportDate; - + @Excel(name = "商户名称", width = 20, orderNum = "2") @io.swagger.annotations.ApiModelProperty(value="商户名",name="merchantName") private String merchantName; + @Excel(name = "操作人", width = 20, orderNum = "6") @io.swagger.annotations.ApiModelProperty(value = "b端用户姓名", name = "bUserName") private String bUserName; + @Excel(name = "联系电话", width = 20, orderNum = "7") @io.swagger.annotations.ApiModelProperty(value = "B端用户手机号", name = "bUserPhone") private String bUserPhone; + @Excel(name = "交易笔数", width = 20, orderNum = "4") @io.swagger.annotations.ApiModelProperty(value = "交易笔数", name = "tradeCount") private Integer tradeCount; @io.swagger.annotations.ApiModelProperty(value = "凭证", name = "proof") diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantTradeDailyService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantTradeDailyService.java index 86883a2a2..d156ad928 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantTradeDailyService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantTradeDailyService.java @@ -5,6 +5,9 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.WxMerchantTradeDaily; import com.iformall.domain.vo.WxMerchantTradeDailyVo; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + public interface WxMerchantTradeDailyService { /** @@ -84,4 +87,5 @@ public interface WxMerchantTradeDailyService { ResultData queryTradeDaily(WxMerchantTradeDailyVo wxMerchantTradeDaily); + void exportData(WxMerchantTradeDailyVo 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 e2f816f81..60e7dc33d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantTradeDailyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantTradeDailyServiceImpl.java @@ -1,12 +1,9 @@ package com.iformall.service.impl; -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.stream.Collectors; - import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; +import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.WxMall; @@ -15,17 +12,17 @@ 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.service.WxMerchantTradeDailyService; -import com.iformall.service.WxMallService; -import com.iformall.service.WxMerchantBUserService; -import com.iformall.service.WxMerchantService; -import com.iformall.utils.DateUtils; -import org.apache.commons.lang3.StringUtils; +import com.iformall.service.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.iformall.common.IdWorker; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; @Service public class WxMerchantTradeDailyServiceImpl implements WxMerchantTradeDailyService { @@ -43,6 +40,9 @@ public class WxMerchantTradeDailyServiceImpl implements WxMerchantTradeDailyServ @Autowired WxMallService wxMallService; + @Autowired + ExcelService excelService; + @Override public PageInfo listAsPage(WxMerchantTradeDaily record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxMerchantTradeDailyMapper.findList(record)); @@ -172,6 +172,29 @@ public class WxMerchantTradeDailyServiceImpl implements WxMerchantTradeDailyServ return new ResultData(wxMerchantTradeDaily); } + @Override + public void exportData(WxMerchantTradeDailyVo wxMerchantTradeDailyVo, HttpServletRequest request, HttpServletResponse response) { + //没有商户ID导出全部数据 + String name = "解单数据"; + if (wxMerchantTradeDailyVo.getMerchantId() == null) { + String title = wxMerchantTradeDailyVo.getReportDate() + "商户解单数据"; + List list = wxMerchantTradeDailyMapper.findListVo(wxMerchantTradeDailyVo); + excelService.exportExcel(list, title, name, WxMerchantTradeDailyVo.class, name + ".xlsx", response, false); + } else { + WxMerchantTradeDaily wxMerchantTradeDaily = new WxMerchantTradeDaily(); + wxMerchantTradeDaily.setTenantId(wxMerchantTradeDailyVo.getTenantId()); + wxMerchantTradeDaily.setMerchantId(wxMerchantTradeDailyVo.getMerchantId()); + List list = wxMerchantTradeDailyMapper.findListVoOfMonth(wxMerchantTradeDaily); + list.parallelStream().forEach(t -> t.setMerchantName(null)); + String title = "近30天解单数据"; + if (!list.isEmpty()) { + String merchantName = list.get(0).getMerchantName(); + title = merchantName + title; + } + excelService.exportExcel(list, title, name, WxMerchantTradeDailyVo.class, name + ".xlsx", response, false); + } + } + @Override public ResultData getVolumeOfMonth(Long merchantId) { @@ -188,9 +211,9 @@ public class WxMerchantTradeDailyServiceImpl implements WxMerchantTradeDailyServ Calendar cal = Calendar.getInstance(); SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat fmtv = new SimpleDateFormat("MM/dd"); - cal.setTime(new Date()); for (int i = 0; i < 30; i++) { - cal.add(Calendar.DAY_OF_YEAR, -1); + cal.setTime(new Date()); + cal.add(Calendar.DAY_OF_YEAR, -i); WxMerchantTradeDailyVo trade = recordMap.get(fmt.format(cal.getTime())); if (trade != null){ trade.setReportDate(fmtv.format(cal.getTime())); @@ -204,6 +227,7 @@ public class WxMerchantTradeDailyServiceImpl implements WxMerchantTradeDailyServ trade.setReportDate(fmtv.format(cal.getTime())); tradeList.add(trade); } + cal.clear(); } Collections.reverse(tradeList); return new ResultData(tradeList); @@ -223,9 +247,10 @@ public class WxMerchantTradeDailyServiceImpl implements WxMerchantTradeDailyServ Calendar cal = Calendar.getInstance(); SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat fmtv = new SimpleDateFormat("MM/dd"); - cal.setTime(new Date()); for (int i = 0; i < 30; i++) { - cal.add(Calendar.DAY_OF_YEAR, -1); + cal.setTime(new Date()); + cal.add(Calendar.DAY_OF_MONTH, -i); + System.out.println(fmt.format(cal.getTime())); WxMerchantTradeDaily trade = recordMap.get(fmt.format(cal.getTime())); if (trade != null){ trade.setReportDate(fmtv.format(cal.getTime())); @@ -236,6 +261,7 @@ public class WxMerchantTradeDailyServiceImpl implements WxMerchantTradeDailyServ trade.setReportDate(fmtv.format(cal.getTime())); tradeList.add(trade); } + cal.clear(); } Collections.reverse(tradeList);