Bläddra i källkod

订单查询增加退款时间;骑手对账、商户对账、平台对账增加导出

wanxl 1 år sedan
förälder
incheckning
efbf81b4cd

+ 37 - 0
src/main/java/com/sqx/modules/exportExecl/controller/ExportExeclController.java

@@ -18,6 +18,7 @@ import com.sqx.modules.order.dao.AppOrderDao;
 import com.sqx.modules.order.dto.OrderQueryDto;
 import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
 import com.sqx.modules.pay.controller.query.WalletDetailQuery;
+import com.sqx.modules.reconciliation.model.PlatformBillDto;
 import com.sqx.modules.riderStation.entity.RiderStation;
 import com.sqx.modules.riderStation.service.RiderStationService;
 import io.swagger.annotations.Api;
@@ -25,6 +26,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.util.IOUtils;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -254,4 +256,39 @@ public class ExportExeclController {
             return Result.error("新增骑手排行导出计划失败");
         }
     }
+    @GetMapping("excelRiderBill")
+    @ApiOperation("导出骑手对账")
+    public Result excelRiderBill(PlatformBillDto  queryDTO) throws Exception{
+        return getBill(queryDTO,"骑手对账.xlsx","riderBill");
+    }
+    @GetMapping("excelShopBill")
+    @ApiOperation("导出商户对账")
+    public Result excelShopBill(PlatformBillDto  queryDTO) throws Exception{
+        return getBill(queryDTO,"商户对账.xlsx","shopBill");
+    }
+    @GetMapping("excelPlatformBill")
+    @ApiOperation("导出平台对账")
+    public Result excelPlatformBill(PlatformBillDto  queryDTO) throws Exception{
+        return getBill(queryDTO,"平台对账.xlsx","platformBill");
+    }
+
+    private @NotNull Result getBill(PlatformBillDto queryDTO,String excelName,String fileType) {
+        if(!StringUtils.hasText(queryDTO.getUserId())){
+            return Result.error("用户id不能为空");
+        }
+        String strMessage= queryDTO.toStrMessage();
+        if(StringUtils.hasText(queryDTO.getRiderStation())){
+            RiderStation riderStation=riderStationService.getById(queryDTO.getRiderStation());
+            if(riderStation!=null){
+                strMessage=strMessage+"站点:"+riderStation.getStationName()+";";
+            }
+        }
+        ExportJob exportJob =this.buildExportJob(excelName,fileType, queryDTO.getUserId(),strMessage, queryDTO.toStrCode());
+        boolean a=exportJobService.save(exportJob);
+        if (a){
+            return Result.success("新增对账导出计划成功");
+        }else{
+            return Result.error("新增对账导出计划失败");
+        }
+    }
 }

+ 8 - 0
src/main/java/com/sqx/modules/order/dto/OrderQueryDto.java

@@ -47,6 +47,10 @@ public class OrderQueryDto extends PageQuery {
     private String transactionId;
     @ApiModelProperty("优惠券类型 0 平台 1商家 不选查所有")
     private String couponType;
+    @ApiModelProperty("退款开始时间")
+    private String updateStartTime;
+    @ApiModelProperty("退款结束时间")
+    private String updateEndTime;
 
     public String toStrMessage() {
         StringBuilder stringBuffer=new StringBuilder();
@@ -65,6 +69,8 @@ public class OrderQueryDto extends PageQuery {
         if(shopTypeId!=null&&!shopTypeId.trim().equals("")){stringBuffer.append("商铺类型id:"+shopTypeId+";");}
         if(couponType!=null&&!couponType.trim().equals("")){stringBuffer.append(couponType.equals("0")?"优惠券类型:平台;":"优惠券类型:商家;");}
         if(indentStatus!=null&&!indentStatus.trim().equals("")){stringBuffer.append("跑腿订单状态:"+getIndentStateStr(indentStatus)+";");}
+        if(updateStartTime!=null&&!updateStartTime.trim().equals("")){stringBuffer.append("退款开始时间:"+updateStartTime+";");}
+        if(updateEndTime!=null&&!updateEndTime.trim().equals("")){stringBuffer.append("退款结束时间:"+updateEndTime+";");}
         return stringBuffer.toString();
     }
 
@@ -101,6 +107,8 @@ public class OrderQueryDto extends PageQuery {
                 ","+(shopTypeId==null?"":shopTypeId)+
                 ","+(couponType==null?"":couponType)+
                 ","+(indentStatus==null?"":indentStatus)+
+                ","+(updateStartTime==null?"":updateStartTime)+
+                ","+(updateEndTime==null?"":updateEndTime)+
                 ",";
     }
 

+ 8 - 0
src/main/java/com/sqx/modules/reconciliation/mapper/PlatformBillMapper.java

@@ -9,6 +9,8 @@ import com.sqx.modules.reconciliation.model.RiderBillVo;
 import com.sqx.modules.reconciliation.model.ShopBillVo;
 import org.apache.ibatis.annotations.*;
 
+import java.util.List;
+
 /**
  * <p>
  * 对账管理表 Mapper 接口
@@ -91,4 +93,10 @@ public interface PlatformBillMapper extends BaseMapper<PlatformBill> {
     IPage<ShopBillVo> shopBill(@Param("page")Page<ShopBillVo> pages, @Param("params")PlatformBillDto platformBillDto);
 
     IPage<RiderBillVo> riderBill(@Param("page")Page<RiderBillVo> pages, @Param("params")PlatformBillDto platformBillDto);
+
+    List<RiderBillVo> excelRiderBillList(@Param("params") PlatformBillDto query);
+
+    List<ShopBillVo> excelShopBillList(@Param("params") PlatformBillDto query);
+
+    List<PlatformBill> excelPlatformBillList(@Param("params") PlatformBillDto query);
 }

+ 27 - 0
src/main/java/com/sqx/modules/reconciliation/model/PlatformBillDto.java

@@ -2,6 +2,7 @@ package com.sqx.modules.reconciliation.model;
 
 import com.sqx.common.query.PageQuery;
 import lombok.Data;
+import org.springframework.util.StringUtils;
 
 @Data
 public class PlatformBillDto extends PageQuery {
@@ -13,4 +14,30 @@ public class PlatformBillDto extends PageQuery {
     private String riderPhone;
     private String shopName;
     private String shopPhone;
+    private String userId;
+
+    public String toStrMessage() {
+        StringBuilder stringBuilder=new StringBuilder();
+        stringBuilder
+                .append(StringUtils.hasText(startDate)?"开始日期:"+startDate+";":"")
+                .append(StringUtils.hasText(endDate)?"结束日期:"+endDate+";":"")
+                .append(StringUtils.hasText(riderName)?"骑手名称:"+riderName+";":"")
+                .append(StringUtils.hasText(riderPhone)?"骑手手机号:"+riderPhone+";":"")
+                .append(StringUtils.hasText(shopName)?"商户名称:"+shopName+";":"")
+                .append(StringUtils.hasText(shopPhone)?"商户手机号:"+shopPhone+";":"")
+                ;
+        return stringBuilder.toString();
+    }
+
+    public String toStrCode() {
+        return
+                ","+(startDate==null?"":startDate)
+                        +","+(endDate==null?"":endDate)
+                        +","+(riderName==null?"":riderName)
+                        +","+(riderPhone==null?"":riderPhone)
+                        +","+(shopName==null?"":shopName)
+                        +","+(shopPhone==null?"":shopPhone)
+                        +","+(riderStation==null?"":riderStation)
+                        +",";
+    }
 }

+ 7 - 0
src/main/java/com/sqx/modules/reconciliation/service/PlatformBillService.java

@@ -4,6 +4,7 @@ import com.sqx.common.utils.PageUtils;
 import com.sqx.modules.reconciliation.model.PlatformBill;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.sqx.modules.reconciliation.model.PlatformBillDto;
+import com.sqx.modules.utils.excel.ExcelData;
 
 /**
  * <p>
@@ -22,4 +23,10 @@ public interface PlatformBillService extends IService<PlatformBill> {
     PageUtils shopBill(PlatformBillDto platformBillDto);
 
     PageUtils platformBill(PlatformBillDto platformBillDto);
+
+    ExcelData excelRiderBillList(PlatformBillDto query);
+
+    ExcelData excelShopBillList(PlatformBillDto query);
+
+    ExcelData excelPlatformBillList(PlatformBillDto query);
 }

+ 55 - 0
src/main/java/com/sqx/modules/reconciliation/service/impl/PlatformBillServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sqx.common.utils.DateUtils;
 import com.sqx.common.utils.PageUtils;
+import com.sqx.modules.errand.entity.TbIndent;
 import com.sqx.modules.pay.entity.CashOut;
 import com.sqx.modules.reconciliation.model.PlatformBill;
 import com.sqx.modules.reconciliation.mapper.PlatformBillMapper;
@@ -13,10 +14,14 @@ import com.sqx.modules.reconciliation.model.RiderBillVo;
 import com.sqx.modules.reconciliation.model.ShopBillVo;
 import com.sqx.modules.reconciliation.service.PlatformBillService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sqx.modules.utils.excel.ExcelData;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -93,5 +98,55 @@ public class PlatformBillServiceImpl extends ServiceImpl<PlatformBillMapper, Pla
         return new PageUtils(page);
     }
 
+    /**
+     * @param query
+     * @return
+     */
+    @Override
+    public ExcelData excelRiderBillList(PlatformBillDto query) {
+        List<RiderBillVo> riderBillVoList=baseMapper.excelRiderBillList(query);
+        ExcelData data = new ExcelData();
+        data.setName("骑手排行");
+        List<String> titleList= Arrays.asList(
+                "排名",
+                "骑手昵称",
+                "地区 ",
+                "骑手所在站点",
+                "总收益");
+        data.setTitles(titleList);
+        List<List<Object>> rows = new ArrayList<>();
+        for (RiderBillVo riderBillVo:riderBillVoList ){
+            List<Object> row = new ArrayList<>();
+//            row.add(riderBillVo.getRankNum());
+//            row.add(riderBillVo.getNickName());
+//            row.add(riderBillVo.getUserProvince()+tbOrder.getUserCity()+tbOrder.getUserDistrict());
+//            row.add(riderBillVo.getStationName());
+//            row.add(riderBillVo.getMoneyOrder());
+//            rows.add(row);
+        }
+        data.setRows(rows);
+        return data;
+    }
+
+    /**
+     * @param query
+     * @return
+     */
+    @Override
+    public ExcelData excelShopBillList(PlatformBillDto query) {
+        List<ShopBillVo> riderBillVoList=baseMapper.excelShopBillList(query);
+        return null;
+    }
+
+    /**
+     * @param query
+     * @return
+     */
+    @Override
+    public ExcelData excelPlatformBillList(PlatformBillDto query) {
+        List<PlatformBill> riderBillVoList=baseMapper.excelPlatformBillList(query);
+        return null;
+    }
+
 
 }

+ 40 - 0
src/main/java/com/sqx/scheduler/export/ExportScheduler.java

@@ -17,11 +17,14 @@ 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.reconciliation.model.PlatformBillDto;
+import com.sqx.modules.reconciliation.service.PlatformBillService;
 import com.sqx.modules.utils.excel.ExcelData;
 import com.sqx.modules.utils.excel.ExportExcelUtils;
 import com.sqx.scheduler.config.SchedulerLock;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.jetbrains.annotations.NotNull;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -62,6 +65,7 @@ public class ExportScheduler {
     private final CashOutService cashOutService;
     private final UserMoneyDetailsService userMoneyDetailsService;
     private final DataCentreService dataCentreService;
+    private final PlatformBillService platformBillService;
 
 
     /**
@@ -120,6 +124,12 @@ public class ExportScheduler {
                         excelData=getAccountEntryExcelData(exportJob);
                     }else if("rankList".equals(fileType)){
                         excelData=getRankListExcelData(exportJob);
+                    }else if("riderBill".equals(fileType)){
+                        excelData=getRiderBillExcelData(exportJob);
+                    }else if("shopBill".equals(fileType)){
+                        excelData=getShopBillExcelData(exportJob);
+                    }else if("platformBill".equals(fileType)){
+                        excelData=getPlatformBillExcelData(exportJob);
                     }else{
                         continue;
                     }
@@ -164,6 +174,8 @@ public class ExportScheduler {
         }
     }
 
+
+
     //订单导出
     private ExcelData getOrderExcelData(ExportJob exportJob){
         String[] conditions=exportJob.getConditions().split(",",-1);
@@ -192,6 +204,8 @@ public class ExportScheduler {
         queryDto.setShopTypeId(conditions[14]);
         queryDto.setCouponType(conditions[15]);
         queryDto.setIndentStatus(conditions[16]);
+        queryDto.setUpdateStartTime(conditions[17]);
+        queryDto.setUpdateEndTime(conditions[18]);
 
         return appOrderService.excelAllOrderAdmin(queryDto);
     }
@@ -306,4 +320,30 @@ public class ExportScheduler {
         query.setRiderStationId(conditions[4]);
         return dataCentreService.excelRankingList(query);
     }
+    private ExcelData getRiderBillExcelData(ExportJob exportJob) {
+        PlatformBillDto query = getPlatformBillDto(exportJob);
+        return platformBillService.excelRiderBillList(query);
+    }
+
+    private static @NotNull PlatformBillDto getPlatformBillDto(ExportJob exportJob) {
+        String[] conditions= exportJob.getConditions().split(",",-1);
+        PlatformBillDto query =new PlatformBillDto();
+        query.setStartDate(conditions[1]);
+        query.setEndDate(conditions[2]);
+        query.setRiderName(conditions[3]);
+        query.setRiderPhone(conditions[4]);
+        query.setShopName(conditions[5]);
+        query.setShopPhone(conditions[6]);
+        query.setRiderStation(conditions[7]);
+        return query;
+    }
+
+    private ExcelData getShopBillExcelData(ExportJob exportJob) {
+        PlatformBillDto query = getPlatformBillDto(exportJob);
+        return platformBillService.excelShopBillList(query);
+    }
+    private ExcelData getPlatformBillExcelData(ExportJob exportJob) {
+        PlatformBillDto query = getPlatformBillDto(exportJob);
+        return platformBillService.excelPlatformBillList(query);
+    }
 }

+ 18 - 0
src/main/resources/mapper/order/OrderMapper.xml

@@ -182,6 +182,12 @@
         <if test='query.couponType== "1"'>
             and tcu.shop_id !=0
         </if>
+        <if test="query.updateStartTime != null and query.updateStartTime != ''">
+            and tor.update_time >= #{query.updateStartTime}
+        </if>
+        <if test="query.updateEndTime != null and query.updateEndTime != '' ">
+            and tor.update_time &lt;= #{query.updateEndTime}
+        </if>
         order by tor.pay_time desc, tor.create_time desc
     </select>
 
@@ -279,6 +285,12 @@
         <if test='query.couponType== "1"'>
             and tcu.shop_id !=0
         </if>
+        <if test="query.updateStartTime != null and query.updateStartTime != ''">
+            and tor.update_time >= #{query.updateStartTime}
+        </if>
+        <if test="query.updateEndTime != null and query.updateEndTime != '' ">
+            and tor.update_time &lt;= #{query.updateEndTime}
+        </if>
         order by tor.pay_time desc, tor.create_time desc
     </select>
 
@@ -347,6 +359,12 @@
         <if test='query.couponType== "1"'>
             and tcu.shop_id !=0
         </if>
+        <if test="query.updateStartTime != null and query.updateStartTime != ''">
+            and tor.update_time >= #{query.updateStartTime}
+        </if>
+        <if test="query.updateEndTime != null and query.updateEndTime != '' ">
+            and tor.update_time &lt;= #{query.updateEndTime}
+        </if>
         order by tor.pay_time desc, tor.create_time desc
     </select>