Просмотр исходного кода

Accept Merge Request #13: (dev-feat -> dev-lzl)

Merge Request: 合并到副分支

Created By: @刘子麟
Accepted By: @刘子麟
URL: https://chuanghaikeji.coding.net/p/moxuanyunshangwaimai/d/backend/git/merge/13?initial=true
刘子麟 1 год назад
Родитель
Сommit
298c016d5d
29 измененных файлов с 635 добавлено и 78 удалено
  1. 17 1
      pom.xml
  2. 26 0
      src/main/java/com/sqx/config/MinioClientConfig.java
  3. 38 0
      src/main/java/com/sqx/config/MinioConfig.java
  4. 4 0
      src/main/java/com/sqx/modules/app/dao/UserMoneyDetailsDao.java
  5. 9 0
      src/main/java/com/sqx/modules/app/service/UserMoneyDetailsService.java
  6. 43 0
      src/main/java/com/sqx/modules/app/service/impl/UserMoneyDetailsServiceImpl.java
  7. 4 2
      src/main/java/com/sqx/modules/datacentre/controller/DataCentreController.java
  8. 5 2
      src/main/java/com/sqx/modules/datacentre/dao/DataCentreDao.java
  9. 22 0
      src/main/java/com/sqx/modules/datacentre/query/DataCenterQuery.java
  10. 43 0
      src/main/java/com/sqx/modules/datacentre/query/ShopCenterQuery.java
  11. 6 1
      src/main/java/com/sqx/modules/datacentre/service/DataCentreService.java
  12. 39 9
      src/main/java/com/sqx/modules/datacentre/service/impl/DataCentreServiceImpl.java
  13. 79 1
      src/main/java/com/sqx/modules/exportExecl/controller/ExportExeclController.java
  14. 1 1
      src/main/java/com/sqx/modules/exportExecl/model/ExportJob.java
  15. 34 11
      src/main/java/com/sqx/modules/file/AliFileUploadController.java
  16. 15 15
      src/main/java/com/sqx/modules/order/controller/OrderController.java
  17. 8 0
      src/main/java/com/sqx/modules/order/entity/TbOrder.java
  18. 1 1
      src/main/java/com/sqx/modules/order/service/AppOrderService.java
  19. 4 4
      src/main/java/com/sqx/modules/order/service/impl/AppAppOrderServiceImpl.java
  20. 47 0
      src/main/java/com/sqx/modules/pay/controller/query/CashOutQueryDTO.java
  21. 35 2
      src/main/java/com/sqx/modules/pay/controller/query/WalletDetailQuery.java
  22. 1 1
      src/main/java/com/sqx/modules/pay/vo/WalletDetailVO.java
  23. 1 1
      src/main/java/com/sqx/modules/printInfo/controller/PrintInfoController.java
  24. 4 4
      src/main/java/com/sqx/modules/utils/fieYun/FeiYunUtils.java
  25. 63 3
      src/main/java/com/sqx/scheduler/export/ExportScheduler.java
  26. 7 2
      src/main/resources/application-dev.yml
  27. 7 0
      src/main/resources/application-prod.yml
  28. 52 13
      src/main/resources/mapper/dataCentre/dataCenterMapper.xml
  29. 20 4
      src/main/resources/mapper/userMoney/UserMoneyDetailsMapper.xml

+ 17 - 1
pom.xml

@@ -41,7 +41,7 @@
         <fastjson.version>1.2.83</fastjson.version>
         <hutool.version>4.1.1</hutool.version>
         <lombok.version>1.18.4</lombok.version>
-
+        <okhttp3.version>4.11.0</okhttp3.version>
 
         <!--wagon plugin 配置-->
         <!--<service-path>/work/sz</service-path>
@@ -434,8 +434,24 @@
         <!--            <artifactId>java-sdk</artifactId>-->
         <!--            <version>4.11.3</version>-->
         <!--</dependency>-->
+        <!-- minio -->
+        <dependency>
+            <groupId>io.minio</groupId>
+            <artifactId>minio</artifactId>
+            <version>8.5.9</version>
+        </dependency>
     </dependencies>
 
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>com.squareup.okhttp3</groupId>
+                <artifactId>okhttp</artifactId>
+                <version>${okhttp3.version}</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
     <build>
         <finalName>${project.artifactId}</finalName>
         <extensions>

+ 26 - 0
src/main/java/com/sqx/config/MinioClientConfig.java

@@ -0,0 +1,26 @@
+package com.sqx.config;
+
+import io.minio.MinioClient;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * minio客户端自动注入
+ *
+ * @author : codingliang
+ * @date : 2024-09-29 18:35
+ */
+@Configuration
+@RequiredArgsConstructor
+public class MinioClientConfig {
+    private final MinioConfig minioConfig;
+
+    @Bean
+    public MinioClient minioClient() {
+        return MinioClient.builder()
+                .endpoint(minioConfig.getEndpoint())
+                .credentials(minioConfig.getAccessKey(), minioConfig.getSecretKey())
+                .build();
+    }
+}

+ 38 - 0
src/main/java/com/sqx/config/MinioConfig.java

@@ -0,0 +1,38 @@
+package com.sqx.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * minio配置
+ *
+ * @author : codingliang
+ * @date : 2024-09-29 18:32
+ */
+@Data
+@Component
+@ConfigurationProperties(prefix = "minio")
+public class MinioConfig {
+
+    /**
+     * endpoint
+     */
+    private String endpoint;
+
+    /**
+     * key
+     */
+    private String accessKey;
+
+    /**
+     * secret
+     */
+    private String secretKey;
+
+    /**
+     * bucket名称
+     */
+    private String bucket;
+
+}

+ 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;
 
 

+ 34 - 11
src/main/java/com/sqx/modules/file/AliFileUploadController.java

@@ -1,19 +1,28 @@
 package com.sqx.modules.file;
 
+import cn.hutool.core.util.StrUtil;
 import com.aliyun.oss.OSS;
 import com.aliyun.oss.OSSClientBuilder;
+import com.sqx.common.exception.SqxException;
 import com.sqx.common.utils.Result;
+import com.sqx.config.MinioConfig;
 import com.sqx.modules.common.service.CommonInfoService;
 import com.sqx.modules.file.utils.FileUploadUtils;
 import icu.xuyijie.secureapi.annotation.DecryptParam;
+import io.minio.MinioClient;
+import io.minio.ObjectWriteResponse;
+import io.minio.PutObjectArgs;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.jaudiotagger.audio.AudioFileIO;
 import org.jaudiotagger.audio.mp3.MP3AudioHeader;
 import org.jaudiotagger.audio.mp3.MP3File;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.ByteArrayInputStream;
@@ -34,19 +43,16 @@ import java.util.UUID;
  * @author fang
  * @date 2020/7/13
  */
-@RestController
+@Slf4j
 @Api(value = "阿里云文件上传", tags = {"阿里云文件上传"})
+@RestController
 @RequestMapping(value = "/alioss")
-@Slf4j
+@RequiredArgsConstructor
 public class AliFileUploadController {
 
-
     private final CommonInfoService commonRepository;
-
-    @Autowired
-    public AliFileUploadController(CommonInfoService commonRepository) {
-        this.commonRepository = commonRepository;
-    }
+    private final MinioClient minioClient;
+    private final MinioConfig minioConfig;
 
     @RequestMapping(value = "/upload", method = RequestMethod.POST)
     @ApiOperation("文件上传")
@@ -71,7 +77,24 @@ public class AliFileUploadController {
             String src = commonRepository.findOne(72).getValue()+"/"+completePath;
             // String src = commonRepository.findOne(19).getValue()+"/img/"+completePath;
             return Result.success().put("data",src);
-        }else{
+        } else if (StrUtil.equals(value, "3")) {
+            // Minio上传
+            String suffix = file.getOriginalFilename().substring(Objects.requireNonNull(file.getOriginalFilename()).lastIndexOf("."));
+            String completePath = getPath(suffix);
+            try {
+                minioClient.putObject(PutObjectArgs.builder()
+                        .bucket(minioConfig.getBucket())
+                        .object(completePath)
+                        .stream(file.getInputStream(), file.getSize(), -1)
+                        .build());
+
+                String src = commonRepository.findOne(72).getValue() + "/" + completePath;
+                return Result.success().put("data", src);
+            } catch (Exception e) {
+                throw new SqxException("文件上传失败!");
+            }
+
+        } else{
             try
             {
                 String http = commonRepository.findOne(19).getValue();

+ 15 - 15
src/main/java/com/sqx/modules/order/controller/OrderController.java

@@ -26,7 +26,7 @@ import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 
 @Slf4j
-@Api(tags={"管理端-订单"})
+@Api(tags = {"管理端-订单"})
 @RestController
 @RequestMapping("/admin/order")
 public class OrderController extends AbstractController {
@@ -38,8 +38,8 @@ public class OrderController extends AbstractController {
 
     @ApiOperation("条件查询所有订单")
     @GetMapping(value = "selectAllOrder")
-    public Result selectAllOrder(Integer page, Integer limit, Integer status, String phone, Long shopId, String userName, String orderNumber, Integer orderType,String shopName){
-        return appOrderService.selectAllOrder(page, limit, status, phone, shopId, userName, orderNumber, orderType,shopName);
+    public Result selectAllOrder(Integer page, Integer limit, Integer status, String phone, Long shopId, String userName, String orderNumber, Integer orderType, String shopName) {
+        return appOrderService.selectAllOrder(page, limit, status, phone, shopId, userName, orderNumber, orderType, shopName);
     }
 
     @ApiOperation("条件查询所有订单(管理端)")
@@ -47,10 +47,10 @@ public class OrderController extends AbstractController {
     public Result selectAllOrderAdmin(Integer page, Integer limit, Integer status, String phone, Long shopId, String userName,
                                       String orderNumber, String indentStatus, String reservationFlag,
                                       @ApiParam("1上门 2骑手配送 3商家配送 不传查所有") Integer orderType,
-                                      String shopName, String riderPhone, String startTime, String endTime, String payStartTime, String payEndTime){
+                                      String shopName, String riderPhone, String startTime, String endTime, String payStartTime, String payEndTime) {
         return appOrderService.selectAllOrderAdmin(page, limit, status, phone, shopId, userName, orderNumber, orderType, shopName, riderPhone, indentStatus, reservationFlag, startTime, endTime, payStartTime, payEndTime);
     }
-
+    
 //    @GetMapping("excelOrder")
 //    @ApiOperation("导出卡密列表")
 //    public void excelOrder(Integer status, String phone, Long shopId, String userName,
@@ -62,7 +62,7 @@ public class OrderController extends AbstractController {
 
     @ApiOperation("完成订单")
     @PostMapping(value = "accomplishOrder")
-    public Result accomplishOrder(@Valid OrderFinishByShopDTO orderFinishByShopDTO){
+    public Result accomplishOrder(@Valid OrderFinishByShopDTO orderFinishByShopDTO) {
         appOrderService.finishOrderByShop(orderFinishByShopDTO);
 
         return Result.success();
@@ -70,7 +70,7 @@ public class OrderController extends AbstractController {
 
     @ApiOperation("添加送达照片")
     @PostMapping(value = "add-receive-img/{orderId}")
-    public Result addReceiveImg(@PathVariable Long orderId, @DecryptParam String img){
+    public Result addReceiveImg(@PathVariable Long orderId, @DecryptParam String img) {
         appOrderService.addReceiveImg(orderId, img);
 
         return Result.success();
@@ -78,43 +78,43 @@ public class OrderController extends AbstractController {
 
     @ApiOperation("管理订单")
     @PostMapping(value = "updateOrder")
-    public Result updateOrder(@RequestBody TbOrder tborder){
+    public Result updateOrder(@RequestBody TbOrder tborder) {
 
         return appOrderService.updateOrder(tborder);
     }
 
     @ApiOperation("管理端退款")
     @PostMapping(value = "adminCancelOrder")
-    public Result adminCancelOrder(Long orderId){
+    public Result adminCancelOrder(Long orderId) {
 
         return appOrderService.adminCancelOrder(orderId);
     }
 
     @ApiOperation("商家回复评论")
     @PostMapping(value = "shopReplyEvaluate")
-    public Result shopReplyEvaluate(String orderNumber, String shopReplyMessage){
+    public Result shopReplyEvaluate(String orderNumber, String shopReplyMessage) {
 
         return appOrderService.shopReplyEvaluate(orderNumber, shopReplyMessage);
     }
 
     @ApiOperation("商家删除评论")
     @PostMapping("/deleteEvaluate")
-    public Result deleteEvaluate(Long evaluateId){
+    public Result deleteEvaluate(Long evaluateId) {
         evaluateService.removeById(evaluateId);
         return Result.success();
     }
 
     @ApiOperation("打印票")
     @PostMapping(value = "/print")
-    public Result print(Long orderId){
-        return appOrderService.print(orderId);
+    public Result print(Long orderId, Integer isAppend) {
+        return appOrderService.print(orderId, isAppend);
     }
 
     @ApiOperation("获取用户评价列表")
     @GetMapping(value = "getEvaluateList")
-    public Result getEvaluateList( Long userId, Evaluate evaluate, Integer page, Integer limit){
+    public Result getEvaluateList(Long userId, Evaluate evaluate, Integer page, Integer limit) {
         evaluate.setUserId(userId);
-        return Result.success().put("data", appOrderService.getEvaluateList(evaluate,page,limit));
+        return Result.success().put("data", appOrderService.getEvaluateList(evaluate, page, limit));
     }
 
 }

+ 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;
 

+ 1 - 1
src/main/java/com/sqx/modules/order/service/AppOrderService.java

@@ -17,7 +17,7 @@ public interface AppOrderService extends IService<TbOrder> {
 
     void insertOrder(Long userId, Long shopId, Long goodsId, Integer num, Long skuId, String skuMessage, Integer orderType);
 
-    Result print(Long orderId);
+    Result print(Long orderId, Integer isAppend);
 
     Result updateOrder(TbOrder order);
 

+ 4 - 4
src/main/java/com/sqx/modules/order/service/impl/AppAppOrderServiceImpl.java

@@ -641,7 +641,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
                         // 设置店铺名称
                         order.setShopName(goodsShop.getShopName());
 
-                        FeiYunUtils.print(goodsShop.getSnCode(), null, order);
+                        FeiYunUtils.print(goodsShop.getSnCode(), null, order,null);
                     } catch (Exception e) {
                         log.error("订单:{},小票打印失败,失败原因:{}", order.getOrderId(), e);
                     }
@@ -1561,7 +1561,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
     }
 
     @Override
-    public Result print(Long orderId) {
+    public Result print(Long orderId, Integer isAppend) {
         // 查询订单信息
         TbOrder tbOrder = selectOrderByIds(orderId);
         Long shopId = tbOrder.getShopId();
@@ -1570,7 +1570,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         GoodsShop goodsShop = goodsShopDao.selectById(shopId);
 
         if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
-            FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder);
+            FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder, isAppend);
         } else {
             return Result.error("当前商家未绑定打印机!");
         }
@@ -1642,7 +1642,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             // 如果是预约订单,则不再打印小票(订单支付的时候已经打印过了)
             if (!StrUtil.equals(tbOrder.getReservationFlag(), Constant.YES)) {
                 if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
-                    FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder);
+                    FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder,null);
                 }
             }
         } else if (order.getStatus() == 3) {

+ 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;
 }

+ 1 - 1
src/main/java/com/sqx/modules/printInfo/controller/PrintInfoController.java

@@ -66,7 +66,7 @@ public class PrintInfoController {
         tbOrder.setCountOrder(3);
 
         if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
-            FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder);
+            FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder,null);
         } else {
             return Result.error("当前商家未绑定打印机!");
         }

+ 4 - 4
src/main/java/com/sqx/modules/utils/fieYun/FeiYunUtils.java

@@ -309,7 +309,7 @@ public class FeiYunUtils {
      * @return 成功:{"msg":"ok","ret":0,"data":"xxxxxxx_xxxxxxxx_xxxxxxxx","serverExecutedTime":5}
      * 失败:{"msg":"错误描述","ret":非0,"data":"null","serverExecutedTime":5}
      */
-    public static String print(String sn, Integer classify, TbOrder tbOrder) {
+    public static String print(String sn, Integer classify, TbOrder tbOrder, Integer isAppend) {
         try {
             //标签说明:
             //单标签:
@@ -1493,7 +1493,7 @@ public class FeiYunUtils {
 
             String content = stringBuilder.toString();
 
-            doRequest(sn, content);
+            doRequest(sn, content, tbOrder.getStatus(), isAppend);
 
         } catch (Exception e) {
             e.printStackTrace();
@@ -1522,7 +1522,7 @@ public class FeiYunUtils {
             sb.append("<BR>");
             sb.append("<CUT>");
 
-            doRequest(sn, sb.toString());
+            doRequest(sn, sb.toString(),5,null);
 
         } catch (Exception e) {
             e.printStackTrace();
@@ -1531,7 +1531,7 @@ public class FeiYunUtils {
         return null;
     }
 
-    private static void doRequest(String sn, String content) {
+    private static void doRequest(String sn, String content, Integer status, Integer isAppend) {
         RequestConfig requestConfig = RequestConfig.custom()
                 .setSocketTimeout(30000)//读取超时
                 .setConnectTimeout(30000)//连接超时

+ 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);
+    }
 }

+ 7 - 2
src/main/resources/application-dev.yml

@@ -3,10 +3,8 @@ spring:
         type: com.alibaba.druid.pool.DruidDataSource
         druid:
             driver-class-name: com.mysql.cj.jdbc.Driver
-#            url: jdbc:mysql://172.16.20.104:3306/tcwm2.5?useUnicode=true&characterEncoding=utf-8&useSSL=false&rewriteBatchedStatements=true&serverTimezone=CTT
             url: jdbc:mysql://172.16.20.108:3306/tcwm2.5?useUnicode=true&characterEncoding=utf-8&useSSL=false&rewriteBatchedStatements=true&serverTimezone=CTT
             username: root
-#            password: ch@2025.wm
             password: chuanghai@2024
             initial-size: 15
             max-active: 100
@@ -149,3 +147,10 @@ dynamic:
         wall:
             config:
                 multi-statement-allow: true
+
+# minio配置
+minio:
+    endpoint: http://172.16.20.105:9000
+    accessKey: YTDm6Wtjf1q0LbGi2SKK
+    secretKey: MU1KozgxyknGDPwcKuvCEuhZwL37wbryHOFRW5Xt
+    bucket: wmfile

+ 7 - 0
src/main/resources/application-prod.yml

@@ -148,3 +148,10 @@ dynamic:
         wall:
             config:
                 multi-statement-allow: true
+
+# minio配置
+minio:
+    endpoint: http://172.16.20.105:9000
+    accessKey: YTDm6Wtjf1q0LbGi2SKK
+    secretKey: MU1KozgxyknGDPwcKuvCEuhZwL37wbryHOFRW5Xt
+    bucket: wmfile

+ 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)