Ver código fonte

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 ano atrás
pai
commit
298c016d5d
29 arquivos alterados com 635 adições e 78 exclusões
  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>
         <fastjson.version>1.2.83</fastjson.version>
         <hutool.version>4.1.1</hutool.version>
         <hutool.version>4.1.1</hutool.version>
         <lombok.version>1.18.4</lombok.version>
         <lombok.version>1.18.4</lombok.version>
-
+        <okhttp3.version>4.11.0</okhttp3.version>
 
 
         <!--wagon plugin 配置-->
         <!--wagon plugin 配置-->
         <!--<service-path>/work/sz</service-path>
         <!--<service-path>/work/sz</service-path>
@@ -434,8 +434,24 @@
         <!--            <artifactId>java-sdk</artifactId>-->
         <!--            <artifactId>java-sdk</artifactId>-->
         <!--            <version>4.11.3</version>-->
         <!--            <version>4.11.3</version>-->
         <!--</dependency>-->
         <!--</dependency>-->
+        <!-- minio -->
+        <dependency>
+            <groupId>io.minio</groupId>
+            <artifactId>minio</artifactId>
+            <version>8.5.9</version>
+        </dependency>
     </dependencies>
     </dependencies>
 
 
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>com.squareup.okhttp3</groupId>
+                <artifactId>okhttp</artifactId>
+                <version>${okhttp3.version}</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
     <build>
     <build>
         <finalName>${project.artifactId}</finalName>
         <finalName>${project.artifactId}</finalName>
         <extensions>
         <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.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sqx.modules.app.entity.UserMoneyDetails;
 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.controller.query.WalletDetailQuery;
+import com.sqx.modules.pay.vo.CashOutVO;
 import com.sqx.modules.pay.vo.WalletDetailVO;
 import com.sqx.modules.pay.vo.WalletDetailVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
@@ -32,6 +34,8 @@ public interface UserMoneyDetailsDao extends BaseMapper<UserMoneyDetails> {
 
 
     BigDecimal walletDetailStatistics(@Param("query") WalletDetailQuery query);
     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,
     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("userPhone") String userPhone, @Param("couponName") String couponName,
                                                              @Param("orderNumber") String orderNumber, @Param("startTime") String startTime, @Param("endTime") String endTime);
                                                              @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.PageUtils;
 import com.sqx.common.utils.Result;
 import com.sqx.common.utils.Result;
 import com.sqx.modules.app.entity.UserMoneyDetails;
 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.controller.query.WalletDetailQuery;
+import com.sqx.modules.utils.excel.ExcelData;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 
 
@@ -31,6 +33,13 @@ public interface UserMoneyDetailsService extends IService<UserMoneyDetails> {
     BigDecimal walletDetailStatistics(WalletDetailQuery query);
     BigDecimal walletDetailStatistics(WalletDetailQuery query);
 
 
     /**
     /**
+     * 钱包明细导出
+     * @param query
+     * @return
+     */
+    ExcelData excelWalletDetails(WalletDetailQuery query);
+
+    /**
      * 入账管理
      * 入账管理
      * @param page
      * @param page
      * @param limit
      * @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.dao.UserMoneyDetailsDao;
 import com.sqx.modules.app.entity.UserMoneyDetails;
 import com.sqx.modules.app.entity.UserMoneyDetails;
 import com.sqx.modules.app.service.UserMoneyDetailsService;
 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.controller.query.WalletDetailQuery;
+import com.sqx.modules.pay.vo.CashOutVO;
 import com.sqx.modules.pay.vo.WalletDetailVO;
 import com.sqx.modules.pay.vo.WalletDetailVO;
 import org.checkerframework.checker.units.qual.A;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import com.sqx.modules.utils.excel.ExcelData;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 @Service
 @Service
 public class UserMoneyDetailsServiceImpl extends ServiceImpl<UserMoneyDetailsDao, UserMoneyDetails> implements UserMoneyDetailsService {
 public class UserMoneyDetailsServiceImpl extends ServiceImpl<UserMoneyDetailsDao, UserMoneyDetails> implements UserMoneyDetailsService {
@@ -81,6 +87,43 @@ public class UserMoneyDetailsServiceImpl extends ServiceImpl<UserMoneyDetailsDao
         return result;
         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
     @Override
     public PageUtils accountEntryManagementDetails(Integer page, Integer limit, String shopName, String shopPhone, String userPhone, String couponName, String orderNumber, String startTime, String endTime) {
     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.entity.TbCouponUser;
 import com.sqx.modules.coupon.service.TbCouponService;
 import com.sqx.modules.coupon.service.TbCouponService;
 import com.sqx.modules.coupon.service.TbCouponUserService;
 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.datacentre.service.DataCentreService;
 import com.sqx.modules.errand.service.ErrandComplaintService;
 import com.sqx.modules.errand.service.ErrandComplaintService;
 import com.sqx.modules.integral.dao.UserIntegralDetailsDao;
 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.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
+import javax.validation.Valid;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 
 
 @RestController
 @RestController
@@ -172,9 +174,9 @@ public class DataCentreController {
 
 
     @ApiOperation("门店统计")
     @ApiOperation("门店统计")
     @GetMapping(value = "selectShopCenter")
     @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("用户统计")
     @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.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sqx.modules.app.entity.UserEntity;
 import com.sqx.modules.app.entity.UserEntity;
 import com.sqx.modules.app.entity.UserMoneyDetails;
 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.Feedback;
 import com.sqx.modules.errand.entity.TbIndent;
 import com.sqx.modules.errand.entity.TbIndent;
 import com.sqx.modules.order.entity.TbOrder;
 import com.sqx.modules.order.entity.TbOrder;
@@ -13,6 +14,7 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.util.List;
 
 
 @Mapper
 @Mapper
 public interface DataCentreDao {
 public interface DataCentreDao {
@@ -49,9 +51,9 @@ public interface DataCentreDao {
 
 
     IPage<TbIndent> rankingList(Page<TbIndent> pages, String address, String date, String dateType);
     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);
     int allUserCount(String date, String dateType);
 
 
@@ -95,4 +97,5 @@ public interface DataCentreDao {
 
 
     BigDecimal cancelOrderMoney(Long shopId, String date, String dateType);
     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;
 package com.sqx.modules.datacentre.service;
 
 
 import com.sqx.common.utils.Result;
 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 {
 public interface DataCentreService {
 
 
@@ -24,7 +27,9 @@ public interface DataCentreService {
 
 
     Result rankingList(Integer page, Integer limit, String address, String date, String dateType);
     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);
     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.dao.TbCouponUserDao;
 import com.sqx.modules.coupon.entity.TbCouponUser;
 import com.sqx.modules.coupon.entity.TbCouponUser;
 import com.sqx.modules.datacentre.dao.DataCentreDao;
 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.datacentre.service.DataCentreService;
 import com.sqx.modules.errand.entity.Feedback;
 import com.sqx.modules.errand.entity.Feedback;
 import com.sqx.modules.errand.entity.TbIndent;
 import com.sqx.modules.errand.entity.TbIndent;
 import com.sqx.modules.order.dao.AppOrderDao;
 import com.sqx.modules.order.dao.AppOrderDao;
 import com.sqx.modules.order.entity.TbOrder;
 import com.sqx.modules.order.entity.TbOrder;
 import com.sqx.modules.pay.controller.app.AliPayController;
 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.dao.PayDetailsDao;
 import com.sqx.modules.pay.entity.CashOut;
 import com.sqx.modules.pay.entity.CashOut;
 import com.sqx.modules.pay.entity.PayDetails;
 import com.sqx.modules.pay.entity.PayDetails;
 import com.sqx.modules.pay.service.WxErrRiderService;
 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 lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,9 +38,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashMap;
+import java.util.*;
 
 
 @Service
 @Service
 @Slf4j
 @Slf4j
@@ -231,15 +233,15 @@ public class DataCentreServiceImpl implements DataCentreService {
     }
     }
 
 
     @Override
     @Override
-    public Result selectShopCenter(String date, String dateType, Integer page, Integer limit) {
+    public Result selectShopCenter(ShopCenterQuery query) {
         HashMap hashMap = new HashMap();
         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){
             if(tbOrderIPage.getRecords().size()>i){
                 tbOrderIPage.getRecords().get(i).setRank(a);
                 tbOrderIPage.getRecords().get(i).setRank(a);
             }
             }
@@ -251,6 +253,34 @@ public class DataCentreServiceImpl implements DataCentreService {
     }
     }
 
 
     @Override
     @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) {
     public Result selectUserCenter(String date, String dateType) {
         HashMap hashMap = new HashMap();
         HashMap hashMap = new HashMap();
         int userCount = dataCentreDao.allUserCount(date, dateType);
         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.Result;
 import com.sqx.common.utils.SftpUtil;
 import com.sqx.common.utils.SftpUtil;
 import com.sqx.modules.common.service.CommonInfoService;
 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.mapper.ExportJobMapper;
 import com.sqx.modules.exportExecl.model.ExportJob;
 import com.sqx.modules.exportExecl.model.ExportJob;
 import com.sqx.modules.exportExecl.service.ExportJobService;
 import com.sqx.modules.exportExecl.service.ExportJobService;
 import com.sqx.modules.order.dao.AppOrderDao;
 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.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
@@ -88,7 +91,7 @@ public class ExportExeclController {
                 +riderPhone+","+startTime+","+endTime+","+payStartTime+","+payEndTime);
                 +riderPhone+","+startTime+","+endTime+","+payStartTime+","+payEndTime);
         LocalDateTime localDateTime = LocalDateTime.now();
         LocalDateTime localDateTime = LocalDateTime.now();
         String time=localDateTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
         String time=localDateTime.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
-        exportJob.setFileName(time+"订单列表.xlsx");
+        exportJob.setFileName((int) (Math.random() * 100) +time+"订单列表.xlsx");
         exportJob.setUserId(userId);
         exportJob.setUserId(userId);
         exportJob.setCreateTime(new Date());
         exportJob.setCreateTime(new Date());
         exportJob.setUpdateTime(new Date());
         exportJob.setUpdateTime(new Date());
@@ -127,6 +130,56 @@ public class ExportExeclController {
             return Result.error("新增导出计划失败");
             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 = "查询下载列表")
     @ApiOperation(value = "查询下载列表")
     @GetMapping("listByUser")
     @GetMapping("listByUser")
@@ -190,4 +243,29 @@ public class ExportExeclController {
             default: return state+"";
             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 = "文件大小")
     @ApiModelProperty(value = "文件大小")
     private String fileSize;
     private String fileSize;
 
 
-    @ApiModelProperty(value = "状态 0待导出 1导出已完成 2导出失败")
+    @ApiModelProperty(value = "状态 0待导出 1导出已完成 2导出失败 -1 导出中")
     private Integer flag;
     private Integer flag;
 
 
 
 

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

@@ -1,19 +1,28 @@
 package com.sqx.modules.file;
 package com.sqx.modules.file;
 
 
+import cn.hutool.core.util.StrUtil;
 import com.aliyun.oss.OSS;
 import com.aliyun.oss.OSS;
 import com.aliyun.oss.OSSClientBuilder;
 import com.aliyun.oss.OSSClientBuilder;
+import com.sqx.common.exception.SqxException;
 import com.sqx.common.utils.Result;
 import com.sqx.common.utils.Result;
+import com.sqx.config.MinioConfig;
 import com.sqx.modules.common.service.CommonInfoService;
 import com.sqx.modules.common.service.CommonInfoService;
 import com.sqx.modules.file.utils.FileUploadUtils;
 import com.sqx.modules.file.utils.FileUploadUtils;
 import icu.xuyijie.secureapi.annotation.DecryptParam;
 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.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.jaudiotagger.audio.AudioFileIO;
 import org.jaudiotagger.audio.AudioFileIO;
 import org.jaudiotagger.audio.mp3.MP3AudioHeader;
 import org.jaudiotagger.audio.mp3.MP3AudioHeader;
 import org.jaudiotagger.audio.mp3.MP3File;
 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 org.springframework.web.multipart.MultipartFile;
 
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayInputStream;
@@ -34,19 +43,16 @@ import java.util.UUID;
  * @author fang
  * @author fang
  * @date 2020/7/13
  * @date 2020/7/13
  */
  */
-@RestController
+@Slf4j
 @Api(value = "阿里云文件上传", tags = {"阿里云文件上传"})
 @Api(value = "阿里云文件上传", tags = {"阿里云文件上传"})
+@RestController
 @RequestMapping(value = "/alioss")
 @RequestMapping(value = "/alioss")
-@Slf4j
+@RequiredArgsConstructor
 public class AliFileUploadController {
 public class AliFileUploadController {
 
 
-
     private final CommonInfoService commonRepository;
     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)
     @RequestMapping(value = "/upload", method = RequestMethod.POST)
     @ApiOperation("文件上传")
     @ApiOperation("文件上传")
@@ -71,7 +77,24 @@ public class AliFileUploadController {
             String src = commonRepository.findOne(72).getValue()+"/"+completePath;
             String src = commonRepository.findOne(72).getValue()+"/"+completePath;
             // String src = commonRepository.findOne(19).getValue()+"/img/"+completePath;
             // String src = commonRepository.findOne(19).getValue()+"/img/"+completePath;
             return Result.success().put("data",src);
             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
             try
             {
             {
                 String http = commonRepository.findOne(19).getValue();
                 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;
 import javax.validation.Valid;
 
 
 @Slf4j
 @Slf4j
-@Api(tags={"管理端-订单"})
+@Api(tags = {"管理端-订单"})
 @RestController
 @RestController
 @RequestMapping("/admin/order")
 @RequestMapping("/admin/order")
 public class OrderController extends AbstractController {
 public class OrderController extends AbstractController {
@@ -38,8 +38,8 @@ public class OrderController extends AbstractController {
 
 
     @ApiOperation("条件查询所有订单")
     @ApiOperation("条件查询所有订单")
     @GetMapping(value = "selectAllOrder")
     @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("条件查询所有订单(管理端)")
     @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,
     public Result selectAllOrderAdmin(Integer page, Integer limit, Integer status, String phone, Long shopId, String userName,
                                       String orderNumber, String indentStatus, String reservationFlag,
                                       String orderNumber, String indentStatus, String reservationFlag,
                                       @ApiParam("1上门 2骑手配送 3商家配送 不传查所有") Integer orderType,
                                       @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);
         return appOrderService.selectAllOrderAdmin(page, limit, status, phone, shopId, userName, orderNumber, orderType, shopName, riderPhone, indentStatus, reservationFlag, startTime, endTime, payStartTime, payEndTime);
     }
     }
-
+    
 //    @GetMapping("excelOrder")
 //    @GetMapping("excelOrder")
 //    @ApiOperation("导出卡密列表")
 //    @ApiOperation("导出卡密列表")
 //    public void excelOrder(Integer status, String phone, Long shopId, String userName,
 //    public void excelOrder(Integer status, String phone, Long shopId, String userName,
@@ -62,7 +62,7 @@ public class OrderController extends AbstractController {
 
 
     @ApiOperation("完成订单")
     @ApiOperation("完成订单")
     @PostMapping(value = "accomplishOrder")
     @PostMapping(value = "accomplishOrder")
-    public Result accomplishOrder(@Valid OrderFinishByShopDTO orderFinishByShopDTO){
+    public Result accomplishOrder(@Valid OrderFinishByShopDTO orderFinishByShopDTO) {
         appOrderService.finishOrderByShop(orderFinishByShopDTO);
         appOrderService.finishOrderByShop(orderFinishByShopDTO);
 
 
         return Result.success();
         return Result.success();
@@ -70,7 +70,7 @@ public class OrderController extends AbstractController {
 
 
     @ApiOperation("添加送达照片")
     @ApiOperation("添加送达照片")
     @PostMapping(value = "add-receive-img/{orderId}")
     @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);
         appOrderService.addReceiveImg(orderId, img);
 
 
         return Result.success();
         return Result.success();
@@ -78,43 +78,43 @@ public class OrderController extends AbstractController {
 
 
     @ApiOperation("管理订单")
     @ApiOperation("管理订单")
     @PostMapping(value = "updateOrder")
     @PostMapping(value = "updateOrder")
-    public Result updateOrder(@RequestBody TbOrder tborder){
+    public Result updateOrder(@RequestBody TbOrder tborder) {
 
 
         return appOrderService.updateOrder(tborder);
         return appOrderService.updateOrder(tborder);
     }
     }
 
 
     @ApiOperation("管理端退款")
     @ApiOperation("管理端退款")
     @PostMapping(value = "adminCancelOrder")
     @PostMapping(value = "adminCancelOrder")
-    public Result adminCancelOrder(Long orderId){
+    public Result adminCancelOrder(Long orderId) {
 
 
         return appOrderService.adminCancelOrder(orderId);
         return appOrderService.adminCancelOrder(orderId);
     }
     }
 
 
     @ApiOperation("商家回复评论")
     @ApiOperation("商家回复评论")
     @PostMapping(value = "shopReplyEvaluate")
     @PostMapping(value = "shopReplyEvaluate")
-    public Result shopReplyEvaluate(String orderNumber, String shopReplyMessage){
+    public Result shopReplyEvaluate(String orderNumber, String shopReplyMessage) {
 
 
         return appOrderService.shopReplyEvaluate(orderNumber, shopReplyMessage);
         return appOrderService.shopReplyEvaluate(orderNumber, shopReplyMessage);
     }
     }
 
 
     @ApiOperation("商家删除评论")
     @ApiOperation("商家删除评论")
     @PostMapping("/deleteEvaluate")
     @PostMapping("/deleteEvaluate")
-    public Result deleteEvaluate(Long evaluateId){
+    public Result deleteEvaluate(Long evaluateId) {
         evaluateService.removeById(evaluateId);
         evaluateService.removeById(evaluateId);
         return Result.success();
         return Result.success();
     }
     }
 
 
     @ApiOperation("打印票")
     @ApiOperation("打印票")
     @PostMapping(value = "/print")
     @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("获取用户评价列表")
     @ApiOperation("获取用户评价列表")
     @GetMapping(value = "getEvaluateList")
     @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);
         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)
     @TableField(exist = false)
     private String shopPhone;
     private String shopPhone;
 
 
+    @ApiModelProperty("商铺主营类型")
+    @TableField(exist = false)
+    private String shopType;
+
+    @ApiModelProperty("商铺主营类型名称")
+    @TableField(exist = false)
+    private String shopTypeName;
+
     @TableField(exist = false)
     @TableField(exist = false)
     private List<OrderGoods> orderGoodsList;
     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);
     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);
     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());
                         order.setShopName(goodsShop.getShopName());
 
 
-                        FeiYunUtils.print(goodsShop.getSnCode(), null, order);
+                        FeiYunUtils.print(goodsShop.getSnCode(), null, order,null);
                     } catch (Exception e) {
                     } catch (Exception e) {
                         log.error("订单:{},小票打印失败,失败原因:{}", order.getOrderId(), e);
                         log.error("订单:{},小票打印失败,失败原因:{}", order.getOrderId(), e);
                     }
                     }
@@ -1561,7 +1561,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
     }
     }
 
 
     @Override
     @Override
-    public Result print(Long orderId) {
+    public Result print(Long orderId, Integer isAppend) {
         // 查询订单信息
         // 查询订单信息
         TbOrder tbOrder = selectOrderByIds(orderId);
         TbOrder tbOrder = selectOrderByIds(orderId);
         Long shopId = tbOrder.getShopId();
         Long shopId = tbOrder.getShopId();
@@ -1570,7 +1570,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         GoodsShop goodsShop = goodsShopDao.selectById(shopId);
         GoodsShop goodsShop = goodsShopDao.selectById(shopId);
 
 
         if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
         if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
-            FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder);
+            FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder, isAppend);
         } else {
         } else {
             return Result.error("当前商家未绑定打印机!");
             return Result.error("当前商家未绑定打印机!");
         }
         }
@@ -1642,7 +1642,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             // 如果是预约订单,则不再打印小票(订单支付的时候已经打印过了)
             // 如果是预约订单,则不再打印小票(订单支付的时候已经打印过了)
             if (!StrUtil.equals(tbOrder.getReservationFlag(), Constant.YES)) {
             if (!StrUtil.equals(tbOrder.getReservationFlag(), Constant.YES)) {
                 if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
                 if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
-                    FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder);
+                    FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder,null);
                 }
                 }
             }
             }
         } else if (order.getStatus() == 3) {
         } 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.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
+import org.springframework.util.StringUtils;
 
 
 /**
 /**
  * 提现信息查询dto
  * 提现信息查询dto
@@ -37,4 +38,50 @@ public class CashOutQueryDTO extends PageQuery {
     private String startTime;
     private String startTime;
     @ApiModelProperty("查询结束时间")
     @ApiModelProperty("查询结束时间")
     private String endTime;
     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 io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.util.StringUtils;
 
 
 import java.util.Date;
 import java.util.Date;
 
 
@@ -26,9 +27,41 @@ public class WalletDetailQuery extends PageQuery {
 
 
     @ApiModelProperty("查询开始时间, 时间格式yyyy-MM-dd")
     @ApiModelProperty("查询开始时间, 时间格式yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
-    private Date startTime;
+    private String startTime;
 
 
     @ApiModelProperty("查询截止时间, 时间格式yyyy-MM-dd")
     @ApiModelProperty("查询截止时间, 时间格式yyyy-MM-dd")
     @DateTimeFormat(pattern = "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;
     private BigDecimal money;
 
 
     @ApiModelProperty("创建时间")
     @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);
         tbOrder.setCountOrder(3);
 
 
         if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
         if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
-            FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder);
+            FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder,null);
         } else {
         } else {
             return Result.error("当前商家未绑定打印机!");
             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}
      * @return 成功:{"msg":"ok","ret":0,"data":"xxxxxxx_xxxxxxxx_xxxxxxxx","serverExecutedTime":5}
      * 失败:{"msg":"错误描述","ret":非0,"data":"null","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 {
         try {
             //标签说明:
             //标签说明:
             //单标签:
             //单标签:
@@ -1493,7 +1493,7 @@ public class FeiYunUtils {
 
 
             String content = stringBuilder.toString();
             String content = stringBuilder.toString();
 
 
-            doRequest(sn, content);
+            doRequest(sn, content, tbOrder.getStatus(), isAppend);
 
 
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
@@ -1522,7 +1522,7 @@ public class FeiYunUtils {
             sb.append("<BR>");
             sb.append("<BR>");
             sb.append("<CUT>");
             sb.append("<CUT>");
 
 
-            doRequest(sn, sb.toString());
+            doRequest(sn, sb.toString(),5,null);
 
 
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
@@ -1531,7 +1531,7 @@ public class FeiYunUtils {
         return null;
         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()
         RequestConfig requestConfig = RequestConfig.custom()
                 .setSocketTimeout(30000)//读取超时
                 .setSocketTimeout(30000)//读取超时
                 .setConnectTimeout(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.common.utils.SftpUtil;
 import com.sqx.modules.app.entity.RechargeRecord;
 import com.sqx.modules.app.entity.RechargeRecord;
 import com.sqx.modules.app.service.RechargeRecordService;
 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.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.mapper.ExportJobMapper;
 import com.sqx.modules.exportExecl.model.ExportJob;
 import com.sqx.modules.exportExecl.model.ExportJob;
 import com.sqx.modules.exportExecl.service.ExportJobService;
 import com.sqx.modules.exportExecl.service.ExportJobService;
 import com.sqx.modules.order.service.AppOrderService;
 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.ExcelData;
 import com.sqx.modules.utils.excel.ExportExcelUtils;
 import com.sqx.modules.utils.excel.ExportExcelUtils;
 import com.sqx.scheduler.config.SchedulerLock;
 import com.sqx.scheduler.config.SchedulerLock;
@@ -55,6 +61,9 @@ public class ExportScheduler {
     private final AppOrderService appOrderService;
     private final AppOrderService appOrderService;
     private final RechargeRecordService rechargeRecordService;
     private final RechargeRecordService rechargeRecordService;
     private final SftpUtil sftpUtil;
     private final SftpUtil sftpUtil;
+    private final CashOutService cashOutService;
+    private final UserMoneyDetailsService userMoneyDetailsService;
+    private final DataCentreService dataCentreService;
 
 
 
 
     /**
     /**
@@ -62,11 +71,11 @@ public class ExportScheduler {
      * 每分钟运行一次
      * 每分钟运行一次
      */
      */
     @Async
     @Async
-    @Scheduled(cron = "18 */1 * * * ?", zone = "Asia/Shanghai")
-//    @GetMapping("excelOrder")
+//    @Scheduled(cron = "18 */1 * * * ?", zone = "Asia/Shanghai")
+    @GetMapping("excelOrder")
     public void orderExport() throws Exception {
     public void orderExport() throws Exception {
         List<ExportJob> exportJobList=exportJobService.list(new QueryWrapper<ExportJob>()
         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);
         log.info("本次导出数据exportJobList==========="+exportJobList);
         if (null == exportJobList ||exportJobList.isEmpty()){
         if (null == exportJobList ||exportJobList.isEmpty()){
             return;
             return;
@@ -103,6 +112,14 @@ public class ExportScheduler {
                         excelData=getOrderExcelData(exportJob);
                         excelData=getOrderExcelData(exportJob);
                     }else if("recharge".equals(fileType)){
                     }else if("recharge".equals(fileType)){
                         excelData=getRechargeOrderExcelData(exportJob);
                         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();
                     String value=commonInfoService.findOne(430).getValue();
                     ExportExcelUtils.writeExcel2(os,fileName,excelData);
                     ExportExcelUtils.writeExcel2(os,fileName,excelData);
@@ -216,4 +233,47 @@ public class ExportScheduler {
         data.setRows(rows);
         data.setRows(rows);
         return data;
         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
         type: com.alibaba.druid.pool.DruidDataSource
         druid:
         druid:
             driver-class-name: com.mysql.cj.jdbc.Driver
             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
             url: jdbc:mysql://172.16.20.108:3306/tcwm2.5?useUnicode=true&characterEncoding=utf-8&useSSL=false&rewriteBatchedStatements=true&serverTimezone=CTT
             username: root
             username: root
-#            password: ch@2025.wm
             password: chuanghai@2024
             password: chuanghai@2024
             initial-size: 15
             initial-size: 15
             max-active: 100
             max-active: 100
@@ -149,3 +147,10 @@ dynamic:
         wall:
         wall:
             config:
             config:
                 multi-statement-allow: true
                 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:
         wall:
             config:
             config:
                 multi-statement-allow: true
                 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 id="selectNewShopCount" resultType="int">
         select count(*) from goods_shop where 1 = 1
         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>
-        <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>
-        <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>
         </if>
     </select>
     </select>
 
 
@@ -203,17 +209,50 @@
         @rank_num := @rank_num + 1 AS rankNum
         @rank_num := @rank_num + 1 AS rankNum
         FROM
         FROM
         ( SELECT @rank_num := 0 ) r,
         ( 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
         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
         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>
-        <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>
-        <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>
         </if>
         GROUP BY tor.shop_id ) a
         GROUP BY tor.shop_id ) a
         ORDER BY shopMoney DESC
         ORDER BY shopMoney DESC

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

@@ -40,13 +40,12 @@
                 and umd.classify = #{query.classify}
                 and umd.classify = #{query.classify}
             </if>
             </if>
 
 
-            <if test="query.startTime != null">
+            <if test="query.startTime != null and query.startTime != ''">
                 and umd.create_time >= #{query.startTime}
                 and umd.create_time >= #{query.startTime}
             </if>
             </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>
         </where>
     </sql>
     </sql>
 
 
@@ -67,6 +66,23 @@
         order by umd.create_time desc
         order by umd.create_time desc
     </select>
     </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 id="walletDetailStatistics" resultType="java.math.BigDecimal">
         select
         select
         sum(o.amount)
         sum(o.amount)