wanxl 1 год назад
Родитель
Сommit
89ee4956fe

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

@@ -14,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 {
@@ -96,4 +97,5 @@ public interface DataCentreDao {
 
     BigDecimal cancelOrderMoney(Long shopId, String date, String dateType);
 
+    List<TbOrder> excelShopCenter(@Param("query")ShopCenterQuery query);
 }

+ 4 - 0
src/main/java/com/sqx/modules/datacentre/service/DataCentreService.java

@@ -2,6 +2,8 @@ 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 {
 
@@ -27,6 +29,8 @@ public interface DataCentreService {
 
     Result selectShopCenter(ShopCenterQuery query);
 
+    ExcelData excelShopCenter(ShopCenterQuery queryDTO);
+
     Result selectUserCenter(String date, String dateType);
 
     Result selectUserFeedback(String userEmail, Integer page, Integer limit);

+ 32 - 3
src/main/java/com/sqx/modules/datacentre/service/impl/DataCentreServiceImpl.java

@@ -23,10 +23,13 @@ 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;
@@ -35,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
@@ -252,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);

+ 6 - 2
src/main/java/com/sqx/scheduler/export/ExportScheduler.java

@@ -8,6 +8,7 @@ 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;
@@ -62,6 +63,7 @@ public class ExportScheduler {
     private final SftpUtil sftpUtil;
     private final CashOutService cashOutService;
     private final UserMoneyDetailsService userMoneyDetailsService;
+    private final DataCentreService dataCentreService;
 
 
     /**
@@ -267,7 +269,9 @@ public class ExportScheduler {
     private ExcelData getShopCenterExcelData(ExportJob exportJob){
         String[] conditions=exportJob.getConditions().split(",",-1);
         ShopCenterQuery query =new ShopCenterQuery();
-
-        return null;
+        query.setShopType(conditions[1]);
+        query.setStartTime(conditions[2]);
+        query.setEndTime(conditions[3]);
+        return dataCentreService.excelShopCenter(query);
     }
 }

+ 23 - 0
src/main/resources/mapper/dataCentre/dataCenterMapper.xml

@@ -217,6 +217,29 @@
         ORDER BY shopMoney DESC
     </select>
 
+    <select id="excelShopCenter" resultType="com.sqx.modules.order.entity.TbOrder">
+        SELECT
+        *,
+        @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,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
+    </select>
+
     <select id="allUserCount" resultType="int">
         select count(*) from tb_user where status = 1
         <if test="dateType=='day'">