Jelajahi Sumber

Accept Merge Request #12: (dev-wxl -> dev-feat)

Merge Request: 合并提交

Created By: @万新亮
Accepted By: @万新亮
URL: https://chuanghaikeji.coding.net/p/moxuanyunshangwaimai/d/backend/git/merge/12?initial=true
万新亮 1 tahun lalu
induk
melakukan
8c051b3eae

+ 4 - 0
src/main/java/com/sqx/modules/app/dao/UserMoneyDetailsDao.java

@@ -3,7 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sqx.modules.app.entity.UserMoneyDetails;
+import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
 import com.sqx.modules.pay.controller.query.WalletDetailQuery;
+import com.sqx.modules.pay.vo.CashOutVO;
 import com.sqx.modules.pay.vo.WalletDetailVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -32,6 +34,8 @@ public interface UserMoneyDetailsDao extends BaseMapper<UserMoneyDetails> {
 
     BigDecimal walletDetailStatistics(@Param("query") WalletDetailQuery query);
 
+    List<WalletDetailVO> excelWalletDetails(@Param("query") WalletDetailQuery query);
+
     List<UserMoneyDetails> accountEntryManagementDetailsList(@Param("row") Integer row, @Param("limit") Integer limit, @Param("shopName") String shopName, @Param("shopPhone") String shopPhone,
                                                              @Param("userPhone") String userPhone, @Param("couponName") String couponName,
                                                              @Param("orderNumber") String orderNumber, @Param("startTime") String startTime, @Param("endTime") String endTime);

+ 9 - 0
src/main/java/com/sqx/modules/app/service/UserMoneyDetailsService.java

@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
 import com.sqx.modules.app.entity.UserMoneyDetails;
+import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
 import com.sqx.modules.pay.controller.query.WalletDetailQuery;
+import com.sqx.modules.utils.excel.ExcelData;
 
 import java.math.BigDecimal;
 
@@ -31,6 +33,13 @@ public interface UserMoneyDetailsService extends IService<UserMoneyDetails> {
     BigDecimal walletDetailStatistics(WalletDetailQuery query);
 
     /**
+     * 钱包明细导出
+     * @param query
+     * @return
+     */
+    ExcelData excelWalletDetails(WalletDetailQuery query);
+
+    /**
      * 入账管理
      * @param page
      * @param limit

+ 43 - 0
src/main/java/com/sqx/modules/app/service/impl/UserMoneyDetailsServiceImpl.java

@@ -9,14 +9,20 @@ import com.sqx.common.utils.Result;
 import com.sqx.modules.app.dao.UserMoneyDetailsDao;
 import com.sqx.modules.app.entity.UserMoneyDetails;
 import com.sqx.modules.app.service.UserMoneyDetailsService;
+import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
 import com.sqx.modules.pay.controller.query.WalletDetailQuery;
+import com.sqx.modules.pay.vo.CashOutVO;
 import com.sqx.modules.pay.vo.WalletDetailVO;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
+import com.sqx.modules.utils.excel.ExcelData;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 public class UserMoneyDetailsServiceImpl extends ServiceImpl<UserMoneyDetailsDao, UserMoneyDetails> implements UserMoneyDetailsService {
@@ -81,6 +87,43 @@ public class UserMoneyDetailsServiceImpl extends ServiceImpl<UserMoneyDetailsDao
         return result;
     }
 
+    @Override
+    public ExcelData excelWalletDetails(WalletDetailQuery query) {
+        List<WalletDetailVO> walletDetailVOS = baseMapper.excelWalletDetails(query);
+        ExcelData data = new ExcelData();
+        data.setName("保证金记录");
+        data.setTitles(WalletDetailExportTitle());
+        List<List<Object>> rows = new ArrayList<>();
+        for (WalletDetailVO walletDetailVO:walletDetailVOS ){
+            List<Object> row = new ArrayList<>();
+            row.add(walletDetailVO.getId());
+            row.add(walletDetailVO.getShopName());
+            row.add(walletDetailVO.getContent());
+            if ("1".equals(walletDetailVO.getType())){
+                row.add("充值");
+            }else if("2".equals(walletDetailVO.getType())){
+                row.add("提现");
+            }else{
+                row.add("");
+            }
+            row.add(walletDetailVO.getCreateTime());
+            row.add(walletDetailVO.getMoney());
+            rows.add(row);
+        }
+        data.setRows(rows);
+        return data;
+    }
+
+    private List<String> WalletDetailExportTitle() {
+        return Arrays.asList(
+                "编号",
+                "店铺名称",
+                "保证金金额",
+                "类别",
+                "提现时间",
+                "金额");
+    }
+
 
     @Override
     public PageUtils accountEntryManagementDetails(Integer page, Integer limit, String shopName, String shopPhone, String userPhone, String couponName, String orderNumber, String startTime, String endTime) {

+ 4 - 2
src/main/java/com/sqx/modules/datacentre/controller/DataCentreController.java

@@ -7,6 +7,7 @@ import com.sqx.modules.app.service.UserMoneyService;
 import com.sqx.modules.coupon.entity.TbCouponUser;
 import com.sqx.modules.coupon.service.TbCouponService;
 import com.sqx.modules.coupon.service.TbCouponUserService;
+import com.sqx.modules.datacentre.query.ShopCenterQuery;
 import com.sqx.modules.datacentre.service.DataCentreService;
 import com.sqx.modules.errand.service.ErrandComplaintService;
 import com.sqx.modules.integral.dao.UserIntegralDetailsDao;
@@ -17,6 +18,7 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.math.BigDecimal;
 
 @RestController
@@ -172,9 +174,9 @@ public class DataCentreController {
 
     @ApiOperation("门店统计")
     @GetMapping(value = "selectShopCenter")
-    public Result selectShopCenter(String date, String dateType, Integer page, Integer limit) {
+    public Result selectShopCenter(@Valid ShopCenterQuery query) {
 
-        return dataCentreService.selectShopCenter(date, dateType, page, limit);
+        return dataCentreService.selectShopCenter(query);
     }
 
     @ApiOperation("用户统计")

+ 5 - 2
src/main/java/com/sqx/modules/datacentre/dao/DataCentreDao.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sqx.modules.app.entity.UserEntity;
 import com.sqx.modules.app.entity.UserMoneyDetails;
+import com.sqx.modules.datacentre.query.ShopCenterQuery;
 import com.sqx.modules.errand.entity.Feedback;
 import com.sqx.modules.errand.entity.TbIndent;
 import com.sqx.modules.order.entity.TbOrder;
@@ -13,6 +14,7 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 @Mapper
 public interface DataCentreDao {
@@ -49,9 +51,9 @@ public interface DataCentreDao {
 
     IPage<TbIndent> rankingList(Page<TbIndent> pages, String address, String date, String dateType);
 
-    int selectNewShopCount(String date, String dateType);
+    int selectNewShopCount(@Param("query")ShopCenterQuery query);
 
-    IPage<TbOrder> selectRankingList(Page<TbOrder> pages, String date, String dateType);
+    IPage<TbOrder> selectRankingList(Page<TbOrder> pages, @Param("query")ShopCenterQuery query);
 
     int allUserCount(String date, String dateType);
 
@@ -95,4 +97,5 @@ public interface DataCentreDao {
 
     BigDecimal cancelOrderMoney(Long shopId, String date, String dateType);
 
+    List<TbOrder> excelShopCenter(@Param("query")ShopCenterQuery query);
 }

+ 22 - 0
src/main/java/com/sqx/modules/datacentre/query/DataCenterQuery.java

@@ -0,0 +1,22 @@
+package com.sqx.modules.datacentre.query;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.sqx.common.query.PageQuery;
+
+@Data
+public class DataCenterQuery extends PageQuery {
+
+    @ApiModelProperty(value = "起始时间")
+    private String startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    private String endTime;
+
+    @ApiModelProperty(value = "日期")
+    private String date;
+
+    @ApiModelProperty(value = "类型")
+    private String dateType;
+}
+

+ 43 - 0
src/main/java/com/sqx/modules/datacentre/query/ShopCenterQuery.java

@@ -0,0 +1,43 @@
+package com.sqx.modules.datacentre.query;
+
+import com.sqx.common.query.PageQuery;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.util.StringUtils;
+
+import javax.validation.constraints.Pattern;
+
+@Data
+public class ShopCenterQuery extends DataCenterQuery {
+
+    @ApiModelProperty(value = "商铺主营类型id")
+    @Pattern(regexp = "^[0-9]*$", message = "商铺类型只能为数字")
+    private String shopType;
+
+    @ApiModelProperty(value = "商铺主营类型名称")
+    private String shopTypeName;
+
+    @ApiModelProperty(value = "登录人id")
+    private String userId;
+
+    public String toStrMessage() {
+        StringBuilder stringBuilder=new StringBuilder();
+        stringBuilder
+                .append(StringUtils.hasText(getStartTime())?"开始时间:"+getStartTime()+";":"")
+                .append(StringUtils.hasText(getEndTime())?"结束时间:"+getEndTime()+";":"")
+                .append(StringUtils.hasText(shopType)?"商铺类型编号:"+shopType+";":"")
+                .append(StringUtils.hasText(getDate())?"日期:"+getDate()+";":"")
+                .append(StringUtils.hasText(getDateType())?"查询类型:"+getDateType()+";":"");
+        return stringBuilder.toString();
+    }
+
+    public String toStrCode() {
+        return
+                ","+(getStartTime()==null?"":getStartTime())
+                +","+(getEndTime()==null?"":getEndTime())
+                +","+(shopType==null?"":shopType)
+                +","+(getDate()==null?"":getDate())
+                +","+(getDateType()==null?"":getDateType())
+                +",";
+    }
+}

+ 6 - 1
src/main/java/com/sqx/modules/datacentre/service/DataCentreService.java

@@ -1,6 +1,9 @@
 package com.sqx.modules.datacentre.service;
 
 import com.sqx.common.utils.Result;
+import com.sqx.modules.datacentre.query.ShopCenterQuery;
+import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
+import com.sqx.modules.utils.excel.ExcelData;
 
 public interface DataCentreService {
 
@@ -24,7 +27,9 @@ public interface DataCentreService {
 
     Result rankingList(Integer page, Integer limit, String address, String date, String dateType);
 
-    Result selectShopCenter(String date, String dateType, Integer page, Integer limit);
+    Result selectShopCenter(ShopCenterQuery query);
+
+    ExcelData excelShopCenter(ShopCenterQuery queryDTO);
 
     Result selectUserCenter(String date, String dateType);
 

+ 39 - 9
src/main/java/com/sqx/modules/datacentre/service/impl/DataCentreServiceImpl.java

@@ -16,16 +16,20 @@ import com.sqx.modules.common.service.CommonInfoService;
 import com.sqx.modules.coupon.dao.TbCouponUserDao;
 import com.sqx.modules.coupon.entity.TbCouponUser;
 import com.sqx.modules.datacentre.dao.DataCentreDao;
+import com.sqx.modules.datacentre.query.ShopCenterQuery;
 import com.sqx.modules.datacentre.service.DataCentreService;
 import com.sqx.modules.errand.entity.Feedback;
 import com.sqx.modules.errand.entity.TbIndent;
 import com.sqx.modules.order.dao.AppOrderDao;
 import com.sqx.modules.order.entity.TbOrder;
 import com.sqx.modules.pay.controller.app.AliPayController;
+import com.sqx.modules.pay.controller.query.WalletDetailQuery;
 import com.sqx.modules.pay.dao.PayDetailsDao;
 import com.sqx.modules.pay.entity.CashOut;
 import com.sqx.modules.pay.entity.PayDetails;
 import com.sqx.modules.pay.service.WxErrRiderService;
+import com.sqx.modules.pay.vo.WalletDetailVO;
+import com.sqx.modules.utils.excel.ExcelData;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,9 +38,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashMap;
+import java.util.*;
 
 @Service
 @Slf4j
@@ -231,15 +233,15 @@ public class DataCentreServiceImpl implements DataCentreService {
     }
 
     @Override
-    public Result selectShopCenter(String date, String dateType, Integer page, Integer limit) {
+    public Result selectShopCenter(ShopCenterQuery query) {
         HashMap hashMap = new HashMap();
         //新增门店数量
-        int newShopCount = dataCentreDao.selectNewShopCount(date, dateType);
+        int newShopCount = dataCentreDao.selectNewShopCount(query);
         //门店收益排行榜
-        Page<TbOrder> pages=new Page<>(page,limit);
-        IPage<TbOrder> tbOrderIPage = dataCentreDao.selectRankingList(pages, date, dateType);
-        for(int i = 0;i<limit;i++){
-            Integer a = ((page-1)*limit)+i+1;
+        Page<TbOrder> pages=new Page<>(query.getPage(),query.getLimit());
+        IPage<TbOrder> tbOrderIPage = dataCentreDao.selectRankingList(pages, query);
+        for(int i = 0;i<query.getLimit();i++){
+            Integer a = ((query.getPage()-1)*query.getLimit())+i+1;
             if(tbOrderIPage.getRecords().size()>i){
                 tbOrderIPage.getRecords().get(i).setRank(a);
             }
@@ -251,6 +253,34 @@ public class DataCentreServiceImpl implements DataCentreService {
     }
 
     @Override
+    public ExcelData excelShopCenter(ShopCenterQuery query) {
+        List<TbOrder> tbOrderList = dataCentreDao.excelShopCenter(query);
+        ExcelData data = new ExcelData();
+        data.setName("商家收益排行");
+        data.setTitles(WalletDetailExportTitle());
+        List<List<Object>> rows = new ArrayList<>();
+        for (TbOrder tbOrder:tbOrderList ){
+            List<Object> row = new ArrayList<>();
+            row.add(tbOrder.getShopId());
+            row.add(tbOrder.getShopName());
+            row.add(tbOrder.getShopTypeName());
+            row.add(tbOrder.getRank());
+            row.add(tbOrder.getShopMoney());
+            rows.add(row);
+        }
+        data.setRows(rows);
+        return data;
+    }
+
+    private List<String> WalletDetailExportTitle() {
+        return Arrays.asList(
+                "编号",
+                "店铺名称",
+                "商铺类型",
+                "排名",
+                "收益");
+    }
+    @Override
     public Result selectUserCenter(String date, String dateType) {
         HashMap hashMap = new HashMap();
         int userCount = dataCentreDao.allUserCount(date, dateType);

+ 79 - 1
src/main/java/com/sqx/modules/exportExecl/controller/ExportExeclController.java

@@ -8,10 +8,13 @@ import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
 import com.sqx.common.utils.SftpUtil;
 import com.sqx.modules.common.service.CommonInfoService;
+import com.sqx.modules.datacentre.query.ShopCenterQuery;
 import com.sqx.modules.exportExecl.mapper.ExportJobMapper;
 import com.sqx.modules.exportExecl.model.ExportJob;
 import com.sqx.modules.exportExecl.service.ExportJobService;
 import com.sqx.modules.order.dao.AppOrderDao;
+import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
+import com.sqx.modules.pay.controller.query.WalletDetailQuery;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
@@ -88,7 +91,7 @@ public class ExportExeclController {
                 +riderPhone+","+startTime+","+endTime+","+payStartTime+","+payEndTime);
         LocalDateTime localDateTime = LocalDateTime.now();
         String time=localDateTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
-        exportJob.setFileName(time+"订单列表.xlsx");
+        exportJob.setFileName((int) (Math.random() * 100) +time+"订单列表.xlsx");
         exportJob.setUserId(userId);
         exportJob.setCreateTime(new Date());
         exportJob.setUpdateTime(new Date());
@@ -127,6 +130,56 @@ public class ExportExeclController {
             return Result.error("新增导出计划失败");
         }
     }
+
+    @GetMapping("excelPayouts")
+    @ApiOperation("提现管理导出")
+    public Result excelPayouts(CashOutQueryDTO queryDTO) throws Exception{
+        if(queryDTO.getUserId()==null){
+            return Result.error("用户id不能为空");
+        }
+        ExportJob exportJob =new ExportJob();
+        exportJob.setFlag(0);
+        exportJob.setFileType("payouts");
+        exportJob.setConditionDetail(queryDTO.toStrMessage());
+        exportJob.setConditions(queryDTO.toStrCode());
+        LocalDateTime localDateTime = LocalDateTime.now();
+        String time=localDateTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
+        exportJob.setFileName(time+"提现管理.xlsx");
+        exportJob.setCreateTime(new Date());
+        exportJob.setUpdateTime(new Date());
+        exportJob.setUserId(queryDTO.getUserId()+"");
+        int a=exportJobMapper.insert(exportJob);
+        if (a==1){
+            return Result.success("新增提现管理导出计划成功");
+        }else{
+            return Result.error("新增提现管理导出计划失败");
+        }
+    }
+
+    @GetMapping("excelDeposit")
+    @ApiOperation("导出保证金记录")
+    public Result excelDeposit(WalletDetailQuery queryDTO) throws Exception{
+        if(!StringUtils.hasText(queryDTO.getUserId())){
+            return Result.error("用户id不能为空");
+        }
+        ExportJob exportJob =new ExportJob();
+        exportJob.setFlag(0);
+        exportJob.setFileType("deposit");
+        exportJob.setConditionDetail(queryDTO.toStrMessage());
+        exportJob.setConditions(queryDTO.toStrCode());
+        LocalDateTime localDateTime = LocalDateTime.now();
+        String time=localDateTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
+        exportJob.setFileName(time+"保证金记录.xlsx");
+        exportJob.setCreateTime(new Date());
+        exportJob.setUpdateTime(new Date());
+        exportJob.setUserId(queryDTO.getUserId()+"");
+        int a=exportJobMapper.insert(exportJob);
+        if (a==1){
+            return Result.success("新增保证金记录导出计划成功");
+        }else{
+            return Result.error("新增保证金记录导出计划失败");
+        }
+    }
     //    任意文件读取/下载
     @ApiOperation(value = "查询下载列表")
     @GetMapping("listByUser")
@@ -190,4 +243,29 @@ public class ExportExeclController {
             default: return state+"";
         }
     }
+
+    @GetMapping("excelShopCenter")
+    @ApiOperation("导出商户收益统计")
+    public Result excelShopCenter(ShopCenterQuery queryDTO) throws Exception{
+        if(!StringUtils.hasText(queryDTO.getUserId())){
+            return Result.error("用户id不能为空");
+        }
+        ExportJob exportJob =new ExportJob();
+        exportJob.setFlag(0);
+        exportJob.setFileType("shopCenter");
+        exportJob.setConditionDetail(queryDTO.toStrMessage());
+        exportJob.setConditions(queryDTO.toStrCode());
+        LocalDateTime localDateTime = LocalDateTime.now();
+        String time=localDateTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
+        exportJob.setFileName(time+"商铺收益排行.xlsx");
+        exportJob.setCreateTime(new Date());
+        exportJob.setUpdateTime(new Date());
+        exportJob.setUserId(queryDTO.getUserId()+"");
+        int a=exportJobMapper.insert(exportJob);
+        if (a==1){
+            return Result.success("新增商铺收益排行导出计划成功");
+        }else{
+            return Result.error("新增商铺收益排行导出计划失败");
+        }
+    }
 }

+ 1 - 1
src/main/java/com/sqx/modules/exportExecl/model/ExportJob.java

@@ -59,7 +59,7 @@ public class ExportJob implements Serializable {
     @ApiModelProperty(value = "文件大小")
     private String fileSize;
 
-    @ApiModelProperty(value = "状态 0待导出 1导出已完成 2导出失败")
+    @ApiModelProperty(value = "状态 0待导出 1导出已完成 2导出失败 -1 导出中")
     private Integer flag;
 
 

+ 8 - 0
src/main/java/com/sqx/modules/order/entity/TbOrder.java

@@ -175,6 +175,14 @@ public class TbOrder implements Serializable {
     @TableField(exist = false)
     private String shopPhone;
 
+    @ApiModelProperty("商铺主营类型")
+    @TableField(exist = false)
+    private String shopType;
+
+    @ApiModelProperty("商铺主营类型名称")
+    @TableField(exist = false)
+    private String shopTypeName;
+
     @TableField(exist = false)
     private List<OrderGoods> orderGoodsList;
 

+ 47 - 0
src/main/java/com/sqx/modules/pay/controller/query/CashOutQueryDTO.java

@@ -4,6 +4,7 @@ import com.sqx.common.query.PageQuery;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.util.StringUtils;
 
 /**
  * 提现信息查询dto
@@ -37,4 +38,50 @@ public class CashOutQueryDTO extends PageQuery {
     private String startTime;
     @ApiModelProperty("查询结束时间")
     private String endTime;
+
+    public String toStrCode() {
+        return
+//                ","+bankCardNo+
+//                ","+bankRealName+
+//                ","+openBank+
+                ","+(zhifubaoName==null?"":zhifubaoName)+
+                ","+(zhifubao==null?"":zhifubao)+
+                ","+(shopName==null?"":shopName)+
+//                ","+userId+
+                ","+(state==null?"":state)+
+//                ","+phone+
+                ","+(type==null?"":type)+
+//                ","+classify+
+                ","+(startTime==null?"":startTime)+
+                ","+(endTime==null?"":endTime)+",";
+    }
+    public String toStrMessage() {
+        StringBuffer stringBuffer=new StringBuffer();
+
+        stringBuffer
+//                .append(bankCardNo==null||bankCardNo==""?"":"银行卡号:"+bankCardNo+";")
+//                .append(bankRealName==null||bankRealName==""?"":"银行卡户主名称:"+bankRealName+";")
+//                .append(openBank==null||openBank==""?"":"银行卡开户行:"+openBank+";")
+                .append(zhifubaoName==null||zhifubaoName==""?"":"支付宝名称:"+zhifubaoName+";")
+                .append(zhifubao==null||zhifubao==""?"":"支付宝账号:"+zhifubao+";")
+                .append(shopName==null||shopName==""?"":"店铺名称:"+shopName+";")
+//                .append(phone==null||phone==""?"":"用户手机号:"+phone+";")
+//                .append(classify==null?"":"支付渠道:"+classify+";")
+                .append(startTime==null||startTime==""?"":"开始时间:"+startTime+";")
+                .append(endTime==null||endTime==""?"":"结束时间:"+endTime+";");
+        if(state!=null){
+            switch (state){
+                case 0: stringBuffer.append("状态:待转账;");break;
+                case 1: stringBuffer.append("状态:已转账;");break;
+                case 2: stringBuffer.append("状态:已拒绝;");break;
+            }
+        }
+        if(StringUtils.hasText(type)){
+            switch (type){
+                case "1": stringBuffer.append("状态:用户提现;");break;
+                case "2": stringBuffer.append("状态:退保证金;");break;
+            }
+        }
+        return stringBuffer.toString();
+    }
 }

+ 35 - 2
src/main/java/com/sqx/modules/pay/controller/query/WalletDetailQuery.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.util.StringUtils;
 
 import java.util.Date;
 
@@ -26,9 +27,41 @@ public class WalletDetailQuery extends PageQuery {
 
     @ApiModelProperty("查询开始时间, 时间格式yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
-    private Date startTime;
+    private String startTime;
 
     @ApiModelProperty("查询截止时间, 时间格式yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
-    private Date endTime;
+    private String endTime;
+
+    @ApiModelProperty("登录人id")
+    private String userId;
+
+    public String toStrMessage() {
+        StringBuilder stringBuilder=new StringBuilder();
+        stringBuilder.append(!StringUtils.hasText(shopName)?"":"店铺名称:"+shopName+";")
+                .append(!StringUtils.hasText(startTime)?"":"开始时间:"+startTime+";")
+                .append(!StringUtils.hasText(endTime)?"":"截止时间:"+endTime+";");
+        if(StringUtils.hasText(type)){
+            switch (type){
+                case "1": stringBuilder.append("状态:充值;");break;
+                case "2": stringBuilder.append("状态:提现;");break;
+            }
+        }
+        if(StringUtils.hasText(classify)){
+            switch (classify){
+                case "1": stringBuilder.append("明细类别:骑手保证金;");break;
+                case "2": stringBuilder.append("明细类别:商户保证金;");break;
+                case "3": stringBuilder.append("明细类别:钱包明细;");break;
+            }
+        }
+        return stringBuilder.toString();
+    }
+
+    public String toStrCode() {
+        return ","+(shopName==null?"":shopName)
+                +","+(type==null?"":type)
+                +","+(classify==null?"":classify)
+                +","+(startTime==null?"":startTime)
+                +","+(endTime==null?"":endTime)+",";
+    }
 }

+ 1 - 1
src/main/java/com/sqx/modules/pay/vo/WalletDetailVO.java

@@ -33,5 +33,5 @@ public class WalletDetailVO {
     private BigDecimal money;
 
     @ApiModelProperty("创建时间")
-    private Date createTime;
+    private String createTime;
 }

+ 63 - 3
src/main/java/com/sqx/scheduler/export/ExportScheduler.java

@@ -5,11 +5,17 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.sqx.common.utils.SftpUtil;
 import com.sqx.modules.app.entity.RechargeRecord;
 import com.sqx.modules.app.service.RechargeRecordService;
+import com.sqx.modules.app.service.UserMoneyDetailsService;
 import com.sqx.modules.common.service.CommonInfoService;
+import com.sqx.modules.datacentre.query.ShopCenterQuery;
+import com.sqx.modules.datacentre.service.DataCentreService;
 import com.sqx.modules.exportExecl.mapper.ExportJobMapper;
 import com.sqx.modules.exportExecl.model.ExportJob;
 import com.sqx.modules.exportExecl.service.ExportJobService;
 import com.sqx.modules.order.service.AppOrderService;
+import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
+import com.sqx.modules.pay.controller.query.WalletDetailQuery;
+import com.sqx.modules.pay.service.CashOutService;
 import com.sqx.modules.utils.excel.ExcelData;
 import com.sqx.modules.utils.excel.ExportExcelUtils;
 import com.sqx.scheduler.config.SchedulerLock;
@@ -55,6 +61,9 @@ public class ExportScheduler {
     private final AppOrderService appOrderService;
     private final RechargeRecordService rechargeRecordService;
     private final SftpUtil sftpUtil;
+    private final CashOutService cashOutService;
+    private final UserMoneyDetailsService userMoneyDetailsService;
+    private final DataCentreService dataCentreService;
 
 
     /**
@@ -62,11 +71,11 @@ public class ExportScheduler {
      * 每分钟运行一次
      */
     @Async
-    @Scheduled(cron = "18 */1 * * * ?", zone = "Asia/Shanghai")
-//    @GetMapping("excelOrder")
+//    @Scheduled(cron = "18 */1 * * * ?", zone = "Asia/Shanghai")
+    @GetMapping("excelOrder")
     public void orderExport() throws Exception {
         List<ExportJob> exportJobList=exportJobService.list(new QueryWrapper<ExportJob>()
-                .eq("flag",0).last("order by create_time limit 10"));
+                .eq("flag",3).last("order by create_time limit 10"));
         log.info("本次导出数据exportJobList==========="+exportJobList);
         if (null == exportJobList ||exportJobList.isEmpty()){
             return;
@@ -103,6 +112,14 @@ public class ExportScheduler {
                         excelData=getOrderExcelData(exportJob);
                     }else if("recharge".equals(fileType)){
                         excelData=getRechargeOrderExcelData(exportJob);
+                    }else if("payouts".equals(fileType)){
+                        excelData=getPayoutsExcelData(exportJob);
+                    }else if("deposit".equals(fileType)){
+                        excelData=getDepositExcelData(exportJob);
+                    }else if("shopCenter".equals(fileType)){
+                        excelData=getShopCenterExcelData(exportJob);
+                    }else{
+                        continue;
                     }
                     String value=commonInfoService.findOne(430).getValue();
                     ExportExcelUtils.writeExcel2(os,fileName,excelData);
@@ -216,4 +233,47 @@ public class ExportScheduler {
         data.setRows(rows);
         return data;
     }
+
+    //提现管理导出
+    private ExcelData getPayoutsExcelData(ExportJob exportJob){
+        String[] conditions=exportJob.getConditions().split(",",-1);
+        CashOutQueryDTO queryDTO =new CashOutQueryDTO();
+        queryDTO.setZhifubaoName(conditions[1]);
+        queryDTO.setZhifubao(conditions[2]);
+        queryDTO.setShopName(conditions[3]);
+        if(!"".equals(conditions[4])){
+            queryDTO.setState(Integer.valueOf(conditions[4]));
+        }
+        queryDTO.setType(conditions[5]);
+        queryDTO.setStartTime(conditions[6]);
+        queryDTO.setEndTime(conditions[7]);
+        ExcelData excelData = cashOutService.excelPayDetails(queryDTO);
+        return excelData;
+    }
+
+    //导出保证金记录
+    private ExcelData getDepositExcelData(ExportJob exportJob){
+        String[] conditions=exportJob.getConditions().split(",",-1);
+        WalletDetailQuery queryDTO =new WalletDetailQuery();
+        queryDTO.setShopName(conditions[1]);
+        queryDTO.setType(conditions[2]);
+        queryDTO.setClassify(conditions[3]);
+        queryDTO.setStartTime(conditions[4]);
+        queryDTO.setEndTime(conditions[5]);
+        ExcelData excelData = userMoneyDetailsService.excelWalletDetails(queryDTO);
+
+        return excelData;
+    }
+
+    //导出商铺收益排行
+    private ExcelData getShopCenterExcelData(ExportJob exportJob){
+        String[] conditions=exportJob.getConditions().split(",",-1);
+        ShopCenterQuery query =new ShopCenterQuery();
+        query.setShopType(conditions[3]);
+        query.setStartTime(conditions[1]);
+        query.setEndTime(conditions[2]);
+        query.setDate(conditions[4]);
+        query.setDateType(conditions[5]);
+        return dataCentreService.excelShopCenter(query);
+    }
 }

+ 52 - 13
src/main/resources/mapper/dataCentre/dataCenterMapper.xml

@@ -186,14 +186,20 @@
 
     <select id="selectNewShopCount" resultType="int">
         select count(*) from goods_shop where 1 = 1
-        <if test="dateType=='day'">
-            and date_format(create_time,'%Y-%m-%d')=date_format(#{date},'%Y-%m-%d')
+        <if test="query.dateType=='day'">
+            and date_format(create_time,'%Y-%m-%d')=date_format(#{query.date},'%Y-%m-%d')
         </if>
-        <if test="dateType=='month'">
-            and date_format(create_time,'%Y-%m')=date_format(#{date},'%Y-%m')
+        <if test="query.dateType=='month'">
+            and date_format(create_time,'%Y-%m')=date_format(#{query.date},'%Y-%m')
         </if>
-        <if test="dateType=='year'">
-            and date_format(create_time,'%Y')=date_format(#{date},'%Y')
+        <if test="query.dateType=='year'">
+            and date_format(create_time,'%Y')=date_format(#{query.date},'%Y')
+        </if>
+        <if test="query.endTime != null and query.endTime != ''">
+            and create_time <![CDATA[<=]]> #{query.endTime}
+        </if>
+        <if test="query.startTime != null and query.startTime != ''">
+            and create_time >= #{query.startTime}
         </if>
     </select>
 
@@ -203,17 +209,50 @@
         @rank_num := @rank_num + 1 AS rankNum
         FROM
         ( SELECT @rank_num := 0 ) r,
-        ( SELECT ifnull( sum( pay_money ), 0 ) AS shopMoney, tor.shop_id , u.shop_name
+        ( SELECT ifnull( sum( pay_money ), 0 ) AS shopMoney, tor.shop_id , u.shop_name,gp.id as shopType,gp.shop_type_name as shopTypeName
         FROM tb_order tor left join goods_shop u on tor.shop_id = u.shop_id
+        left join shop_type gp on  gp.id=u.shop_type_id
         WHERE tor.shop_id IS NOT NULL and tor.status = 4
-        <if test="dateType=='day'">
-            and date_format(tor.pay_time,'%Y-%m-%d')=date_format(#{date},'%Y-%m-%d')
+        <if test="query.startTime != null and query.startTime !=''">
+            and tor.pay_time >= #{query.startTime}
         </if>
-        <if test="dateType=='month'">
-            and date_format(tor.pay_time,'%Y-%m')=date_format(#{date},'%Y-%m')
+        <if test="query.endTime != null and query.endTime != ''">
+            and tor.pay_time <![CDATA[<=]]> #{query.endTime}
         </if>
-        <if test="dateType=='year'">
-            and date_format(tor.pay_time,'%Y')=date_format(#{date},'%Y')
+        <if test="query.shopType != null and query.shopType != '' ">
+            and gp.id = #{query.shopType}
+        </if>
+        <if test="query.dateType=='day'">
+            and date_format(tor.pay_time,'%Y-%m-%d')=date_format(#{query.date},'%Y-%m-%d')
+        </if>
+        <if test="query.dateType=='month'">
+            and date_format(tor.pay_time,'%Y-%m')=date_format(#{query.date},'%Y-%m')
+        </if>
+        <if test="query.dateType=='year'">
+            and date_format(tor.pay_time,'%Y')=date_format(#{query.date},'%Y')
+        </if>
+        GROUP BY tor.shop_id ) a
+        ORDER BY shopMoney DESC
+    </select>
+
+    <select id="excelShopCenter" resultType="com.sqx.modules.order.entity.TbOrder">
+        SELECT
+        *,
+        @rank_num := @rank_num + 1 AS Rank
+        FROM
+        ( SELECT @rank_num := 0 ) r,
+        ( SELECT ifnull( sum( pay_money ), 0 ) AS shopMoney, tor.shop_id , u.shop_name,gp.id as shopType,gp.shop_type_name as shopTypeName
+        FROM tb_order tor left join goods_shop u on tor.shop_id = u.shop_id
+        left join shop_type gp on  gp.id=u.shop_type_id
+        WHERE tor.shop_id IS NOT NULL and tor.status = 4
+        <if test="query.startTime != null and query.startTime !=''">
+            and tor.pay_time >= #{query.startTime}
+        </if>
+        <if test="query.endTime != null and query.endTime != ''">
+            and tor.pay_time <![CDATA[<=]]> #{query.endTime}
+        </if>
+        <if test="query.shopType != null and query.shopType != '' ">
+            and gp.id = #{query.shopType}
         </if>
         GROUP BY tor.shop_id ) a
         ORDER BY shopMoney DESC

+ 20 - 4
src/main/resources/mapper/userMoney/UserMoneyDetailsMapper.xml

@@ -40,13 +40,12 @@
                 and umd.classify = #{query.classify}
             </if>
 
-            <if test="query.startTime != null">
+            <if test="query.startTime != null and query.startTime != ''">
                 and umd.create_time >= #{query.startTime}
             </if>
 
-            <if test="query.endTime != null">
-                and umd.create_time <![CDATA[<=]]> #{query.endTime}
-            </if>
+            <if test="query.endTime != null and query.endTime != ''">
+                and umd.create_time <![CDATA[<=]]> #{query.endTime}</if>
         </where>
     </sql>
 
@@ -67,6 +66,23 @@
         order by umd.create_time desc
     </select>
 
+    <select id="excelWalletDetails" resultType="com.sqx.modules.pay.vo.WalletDetailVO">
+        select
+        umd.id,
+        gs.shop_name,
+        umd.title,
+        umd.content,
+        umd.type,
+        umd.classify,
+        umd.money,
+        umd.create_time
+        from
+        user_money_details umd
+        left join goods_shop gs on gs.shop_id = umd.shop_id
+        <include refid="walletQueryCondition"></include>
+        order by umd.create_time desc
+    </select>
+
     <select id="walletDetailStatistics" resultType="java.math.BigDecimal">
         select
         sum(o.amount)