Forráskód Böngészése

1.提现查询业务代码重构;
2.提现导出业务新增查询条件;

codingliang 2 éve
szülő
commit
ec99999e4e

+ 26 - 57
src/main/java/com/sqx/modules/pay/controller/CashController.java

@@ -24,24 +24,33 @@ import com.sqx.modules.common.service.CommonInfoService;
 import com.sqx.modules.message.entity.MessageInfo;
 import com.sqx.modules.message.service.MessageService;
 import com.sqx.modules.pay.config.AliPayConstants;
+import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
 import com.sqx.modules.pay.dao.CashOutDao;
 import com.sqx.modules.pay.entity.AliPayWithdrawModel;
 import com.sqx.modules.pay.entity.CashOut;
 import com.sqx.modules.pay.service.CashOutService;
 import com.sqx.modules.pay.service.PayDetailsService;
-import com.sqx.modules.utils.*;
+import com.sqx.modules.utils.AmountCalUtils;
+import com.sqx.modules.utils.WeChatPayRequest;
+import com.sqx.modules.utils.WxPay;
+import com.sqx.modules.utils.WxPayUtils;
+import com.sqx.modules.utils.WxResult;
+import com.sqx.modules.utils.XmlUtil;
 import com.sqx.modules.utils.excel.ExcelData;
 import com.sqx.modules.utils.excel.ExportExcelUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
 import lombok.val;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import com.sqx.modules.sys.controller.AbstractController;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+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 javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
@@ -187,75 +196,35 @@ public class CashController {
         return Result.success().put("data",payDetailsService.selectPayDetails(page,limit,startTime,endTime,userId,1));
     }
 
-    @RequestMapping(value = "/selectPayDetails", method = RequestMethod.GET)
+    @GetMapping(value = "/selectPayDetails")
     @ApiOperation("查询提现记录列表")
     @ResponseBody
-    public Result selectHelpProfit(@ApiParam("页码") int page,
-                                   @ApiParam("大小") int limit,
-                                   @ApiParam("支付宝名称") String zhifubaoName,
-                                   @ApiParam("支付宝账号") String zhifubao,
-                                   @ApiParam("用户id") String userId,
-                                   @ApiParam("提现状态") String state,
-                                   @ApiParam("用户手机号") String phone,
-                                   @ApiParam("店铺名称") String shopName,
-                                   @ApiParam("分类  1用户提现  2退保障金") String type,
-                                   Integer classify,
-                                   String startTime, String endTime){
-        Map<String,Object> map=new HashMap<>();
-        map.put("page",page);
-        map.put("limit",limit);
-        map.put("zhifubaoName",zhifubaoName);
-        map.put("zhifubao",zhifubao);
-        map.put("userId",userId);
-        map.put("type",type);
-        map.put("state",state);
-        map.put("phone",phone);
-        map.put("shopName", shopName);
-        map.put("classify",classify);
-        map.put("startTime",startTime);
-        map.put("endTime",endTime);
-        PageUtils pageUtils = cashOutService.selectCashOutList(map);
+    public Result selectHelpProfit(CashOutQueryDTO queryDTO){
+        PageUtils pageUtils = cashOutService.selectCashOutList(queryDTO);
         return Result.success().put("data",pageUtils);
     }
 
-    @RequestMapping(value = "/selectPayTotal", method = RequestMethod.GET)
+    @GetMapping(value = "/selectPayTotal")
     @ApiOperation("查询提现记录总金额")
     @ResponseBody
-    public Result selectPayTotal(@RequestParam Map<String, Object> map){
-        Double total = cashOutService.selectCashOutTotal(map);
+    public Result selectPayTotal(CashOutQueryDTO queryDTO){
+        Double total = cashOutService.selectCashOutTotal(queryDTO);
         return Result.success().put("data", total == null ? 0 : total);
     }
 
-    @RequestMapping(value = "/selectCommissionTotal", method = RequestMethod.GET)
+    @GetMapping(value = "/selectCommissionTotal")
     @ApiOperation("查询手续费总金额")
     @ResponseBody
-    public Result selectCommissionTotal(@RequestParam Map<String, Object> map){
-        Double total = cashOutService.selectCommissionTotal(map);
+    public Result selectCommissionTotal(CashOutQueryDTO queryDTO){
+        Double total = cashOutService.selectCommissionTotal(queryDTO);
         return Result.success().put("data", total == null ? 0 : total);
     }
 
-    @RequestMapping(value = "/excelPayDetails", method = RequestMethod.GET)
-    @ApiOperation("查询提现记录列表")
+    @GetMapping(value = "/excelPayDetails")
+    @ApiOperation("导出提现记录列表")
     @ResponseBody
-    public void excelPayDetails(@ApiParam("支付宝名称") String zhifubaoName,
-                                @ApiParam("支付宝账号") String zhifubao,
-                                @ApiParam("用户id") String userId,
-                                @ApiParam("提现状态") Integer state,
-                                @ApiParam("用户手机号") String phone,
-                                @ApiParam("分类  1用户提现  2退保障金") String type,
-                                Integer classify,
-                                String startTime, String endTime, HttpServletResponse response)throws Exception {
-        Map<String,Object> map=new HashMap<>();
-        map.put("zhifubaoName",zhifubaoName);
-        map.put("zhifubao",zhifubao);
-        map.put("userId",userId);
-        map.put("type",type);
-        map.put("state",state);
-        map.put("phone",phone);
-        map.put("classify",classify);
-        map.put("startTime",startTime);
-        map.put("endTime",endTime);
-        ExcelData data = cashOutService.excelPayDetails(map);
+    public void excelPayDetails(CashOutQueryDTO queryDTO, HttpServletResponse response)throws Exception {
+        ExcelData data = cashOutService.excelPayDetails(queryDTO);
         ExportExcelUtils.exportExcel(response,"财务列表.xlsx",data);
     }
 

+ 18 - 13
src/main/java/com/sqx/modules/pay/controller/app/AppCashController.java

@@ -1,27 +1,27 @@
 package com.sqx.modules.pay.controller.app;
 
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
 import com.sqx.modules.app.annotation.Login;
 import com.sqx.modules.app.dao.UserDao;
-import com.sqx.modules.app.entity.UserEntity;
 import com.sqx.modules.app.service.UserMoneyDetailsService;
 import com.sqx.modules.common.entity.CommonInfo;
 import com.sqx.modules.common.service.CommonInfoService;
+import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
 import com.sqx.modules.pay.service.CashOutService;
 import com.sqx.modules.pay.service.PayDetailsService;
 import com.sqx.modules.sys.controller.AbstractController;
-import com.sqx.modules.sys.entity.SysUserEntity;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.HashMap;
-import java.util.Map;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestAttribute;
+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;
 
 /**
  * @author fang
@@ -74,12 +74,17 @@ public class AppCashController extends AbstractController {
     @RequestMapping(value = "/selectPayDetails", method = RequestMethod.GET)
     @ApiOperation("查询提现记录列表")
     @ResponseBody
-    public Result selectHelpProfit(int page, int limit, @RequestAttribute("userId") Long userId){
-        Map<String,Object> map=new HashMap<>();
-        map.put("page",page);
-        map.put("limit",limit);
-        map.put("userId",userId);
-        PageUtils pageUtils = cashOutService.selectCashOutList(map);
+    public Result selectHelpProfit(Integer page, Integer limit, @RequestAttribute("userId") Long userId){
+        CashOutQueryDTO queryDTO = new CashOutQueryDTO();
+        if (page != null) {
+            queryDTO.setPage(page);
+        }
+
+        if (limit != null) {
+            queryDTO.setLimit(limit);
+        }
+        queryDTO.setUserId(userId);
+        PageUtils pageUtils = cashOutService.selectCashOutList(queryDTO);
         return Result.success().put("data",pageUtils);
     }
 

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

@@ -0,0 +1,38 @@
+package com.sqx.modules.pay.controller.query;
+
+import com.sqx.common.query.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 提现信息查询dto
+ */
+@Data
+@ApiModel("cashOutQueryDTO")
+public class CashOutQueryDTO extends PageQuery {
+    @ApiModelProperty(name = "银行卡号")
+    private String bankCardNo ;
+    @ApiModelProperty(name = "银行卡户主名称")
+    private String bankRealName ;
+    @ApiModelProperty(name = "银行卡开户行")
+    private String openBank ;
+    @ApiModelProperty("支付宝名称")
+    private String zhifubaoName;
+    @ApiModelProperty("支付宝账号")
+    private String zhifubao;
+    @ApiModelProperty("用户id")
+    private Long userId;
+    @ApiModelProperty("提现状态")
+    private Integer state;
+    @ApiModelProperty("用户手机号")
+    private String phone;
+    @ApiModelProperty("分类 1用户提现、2退保障金")
+    private String type;
+    @ApiModelProperty("支付渠道 1支付宝、2微信支付、5银行卡")
+    private Integer classify;
+    @ApiModelProperty("查询开始时间")
+    private String startTime;
+    @ApiModelProperty("查询结束时间")
+    private String endTim;
+}

+ 6 - 19
src/main/java/com/sqx/modules/pay/dao/CashOutDao.java

@@ -3,7 +3,7 @@ package com.sqx.modules.pay.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.sqx.common.utils.Result;
+import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
 import com.sqx.modules.pay.entity.CashOut;
 import com.sqx.modules.pay.vo.CashOutVO;
 import org.apache.ibatis.annotations.Mapper;
@@ -13,7 +13,6 @@ import java.math.BigDecimal;
 import java.sql.Timestamp;
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
 
 /**
  * @author fang
@@ -32,20 +31,6 @@ public interface CashOutDao extends BaseMapper<CashOut> {
 
     Double selectMayMoney(@Param("userId") Long userId);
 
-    void addMoneyDetails(@Param("userId") Long userId,@Param("title") String title, @Param("content")String content, @Param("type")Integer type, @Param("money")BigDecimal money, @Param("createTime")Timestamp createTime);
-
-    BigDecimal cashSumMoney(@Param("date") String date,@Param("dateType") String dateType);
-
-    int cashCount(@Param("date") String date,@Param("dateType") String dateType);
-
-    BigDecimal awaitSumMoney(@Param("date") String date,@Param("dateType") String dateType);
-
-    int awaitCashCount(@Param("date") String date,@Param("dateType") String dateType);
-
-    IPage<CashOut> selectCashOut(Page<CashOut> pages,@Param("userId") Long userId);
-
-    BigDecimal monthCashOutMoney(@Param("userId") Long userId,@Param("date") String date);
-
     BigDecimal sumMoney(@Param("date") String date, @Param("dateType") String dateType, @Param("state") Integer state ,@Param("type") Integer type);
 
     Integer countMoney(@Param("date") String date, @Param("dateType") String dateType, @Param("state") Integer state, @Param("type") Integer type);
@@ -70,9 +55,11 @@ public interface CashOutDao extends BaseMapper<CashOut> {
 
     BigDecimal cashDepositMoney(String date, String dateType);
 
-    IPage<CashOutVO> selectCashOutList(@Param("page") IPage<CashOut> pageParam, @Param("params") Map<String, Object> params);
+    IPage<CashOutVO> selectCashOutList(@Param("page") IPage<CashOut> pages, @Param("params") CashOutQueryDTO queryDTO);
+
+    Double selectCashOutTotal(@Param("params") CashOutQueryDTO queryDTO);
 
-    Double selectCashOutTotal(@Param("params") Map<String, Object> params);
+    Double selectCommissionTotal(@Param("params") CashOutQueryDTO queryDTO);
 
-    Double selectCommissionTotal(@Param("params") Map<String, Object> params);
+    List<CashOutVO> excelPayDetails(@Param("params") CashOutQueryDTO queryDTO);
 }

+ 7 - 18
src/main/java/com/sqx/modules/pay/service/CashOutService.java

@@ -1,22 +1,21 @@
 package com.sqx.modules.pay.service;
 
-
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
 import com.sqx.modules.app.entity.UserEntity;
+import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
 import com.sqx.modules.pay.entity.CashOut;
 import com.sqx.modules.utils.excel.ExcelData;
 
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
 
 public interface CashOutService extends IService<CashOut> {
 
-    PageUtils selectCashOutList(Map<String, Object> params);
+    PageUtils selectCashOutList(CashOutQueryDTO queryDTO);
 
-    ExcelData excelPayDetails(Map<String, Object> params);
+    ExcelData excelPayDetails(CashOutQueryDTO queryDTO);
 
     int saveBody(CashOut cashOut);
 
@@ -34,12 +33,6 @@ public interface CashOutService extends IService<CashOut> {
 
     Double selectCashOutSumsByNowMonth(Long userId);
 
-  //  Double sumMoney(String time, Integer flag);
-
-  //  Integer countMoney(String time, Integer flag);
-
- //   Integer stayMoney(String time, Integer flag);
-
     void updateMayMoney(int i, Long userId, Double money);
 
     Result cashMoney(Long userId, Long shopId, Double money, Integer classify, Integer type);
@@ -52,18 +45,14 @@ public interface CashOutService extends IService<CashOut> {
 
     /**
      * 查询提现总金额
-     * @param map 参数同查询提现记录列表接口
+     * @param queryDTO 参数同查询提现记录列表接口
      */
-    Double selectCashOutTotal(Map<String, Object> map);
+    Double selectCashOutTotal(CashOutQueryDTO queryDTO);
 
     /**
      * 查询提现总手续费
-     * @param map 参数同查询提现记录列表接口
+     * @param queryDTO 参数同查询提现记录列表接口
      * @return
      */
-    Double selectCommissionTotal(Map<String, Object> map);
-
-
-    //   Result cashDepositMoney(Long userId);
-
+    Double selectCommissionTotal(CashOutQueryDTO queryDTO);
 }

+ 84 - 97
src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java

@@ -1,12 +1,11 @@
 package com.sqx.modules.pay.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.sqx.common.exception.SqxException;
 import com.sqx.common.utils.PageUtils;
-import com.sqx.common.utils.Query;
 import com.sqx.common.utils.Result;
 import com.sqx.modules.app.dao.UserCashOutDao;
 import com.sqx.modules.app.dao.UserDao;
@@ -26,6 +25,7 @@ import com.sqx.modules.errand.entity.ErrandComplaint;
 import com.sqx.modules.errand.entity.TbIndent;
 import com.sqx.modules.message.dao.MessageInfoDao;
 import com.sqx.modules.message.entity.MessageInfo;
+import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
 import com.sqx.modules.pay.dao.CashOutDao;
 import com.sqx.modules.pay.entity.CashOut;
 import com.sqx.modules.pay.service.CashOutService;
@@ -47,10 +47,15 @@ import weixin.popular.support.TokenManager;
 
 import javax.websocket.SendResult;
 import java.math.BigDecimal;
-import java.sql.Timestamp;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.stream.Collectors;
 
 /**
  * 提现申请记录
@@ -100,102 +105,23 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
     private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true);
 
     @Override
-    public PageUtils selectCashOutList(Map<String, Object> params) {
-        // String zhifubaoName = (String) params.get("zhifubaoName");
-        // String zhifubao = (String) params.get("zhifubao");
-        // String userId = String.valueOf(params.get("userId"));
-        // String type = String.valueOf(params.get("type"));
-        // String state = String.valueOf(params.get("state"));
-        // String phone = String.valueOf(params.get("phone"));
-        // String classify = String.valueOf(params.get("classify"));
-        // String startTime = String.valueOf(params.get("startTime"));
-        // String endTime = String.valueOf(params.get("endTime"));
-
-        IPage<CashOut> pageParam = new Query<CashOut>().getPage(params);
-        IPage<CashOutVO> page = this.baseMapper.selectCashOutList(pageParam, params);
-
-        // IPage<CashOut> page = this.page(
-        //         new Query<CashOut>().getPage(params),
-        //         new QueryWrapper<CashOut>()
-        //                 .eq(StringUtils.isNotBlank(zhifubaoName) && !"null".equals(zhifubaoName), "zhifubao_name", zhifubaoName)
-        //                 .eq(StringUtils.isNotBlank(zhifubao) && !"null".equals(zhifubao), "zhifubao", zhifubao)
-        //                 .eq(StringUtils.isNotBlank(userId) && !"null".equals(userId), "user_id", userId)
-        //                 .eq(StringUtils.isNotBlank(type) && !"null".equals(type), "type", type)
-        //                 .eq(StringUtils.isNotBlank(state) && !"null".equals(state), "state", state)
-        //                 .like(StringUtils.isNotBlank(phone) && !"null".equals(phone), "phone", phone)
-        //                 .eq(StringUtils.isNotBlank(classify) && !"null".equals(classify) && "1".equals(classify), "classify", classify)
-        //                 .in(StringUtils.isNotBlank(classify) && !"null".equals(classify) && "2".equals(classify), "classify", "2","3","4")
-        //                 .ge(StringUtils.isNotBlank(startTime) && !"null".equals(startTime),"create_at",startTime)
-        //                 .le(StringUtils.isNotBlank(endTime) && !"null".equals(endTime),"create_at",endTime)
-        //                 .orderByDesc("id")
-        // );
+    public PageUtils selectCashOutList(CashOutQueryDTO queryDTO) {
+        Page<CashOut> pages = new Page<>(queryDTO.getPage(), queryDTO.getLimit());
+        IPage<CashOutVO> page = this.baseMapper.selectCashOutList(pages, queryDTO);
         return new PageUtils(page);
     }
 
     @Override
-    public ExcelData excelPayDetails(Map<String, Object> params) {
-        String zhifubaoName = (String) params.get("zhifubaoName");
-        String zhifubao = (String) params.get("zhifubao");
-        String userId = String.valueOf(params.get("userId"));
-        String type = String.valueOf(params.get("type"));
-        String state = String.valueOf(params.get("state"));
-        String phone = String.valueOf(params.get("phone"));
-        String startTime = String.valueOf(params.get("startTime"));
-        String endTime = String.valueOf(params.get("endTime"));
-        String classify = String.valueOf(params.get("classify"));
-        List<CashOut> cashOutList = this.list(
-                new QueryWrapper<CashOut>()
-                        .eq(StringUtils.isNotBlank(zhifubaoName) && !"null".equals(zhifubaoName), "zhifubao_name", zhifubaoName)
-                        .eq(StringUtils.isNotBlank(zhifubao) && !"null".equals(zhifubao), "zhifubao", zhifubao)
-                        .eq(StringUtils.isNotBlank(userId) && !"null".equals(userId), "user_id", userId)
-                        .eq(StringUtils.isNotBlank(type) && !"null".equals(type), "type", type)
-                        .eq(StringUtils.isNotBlank(state) && !"null".equals(state), "state", state)
-                        .like(StringUtils.isNotBlank(phone) && !"null".equals(phone), "phone", phone)
-                        .eq(StringUtils.isNotBlank(classify) && !"null".equals(classify) && "1".equals(classify), "classify", classify)
-                        .in(StringUtils.isNotBlank(classify) && !"null".equals(classify) && "2".equals(classify), "classify", "2","3","4")
-                        .ge(StringUtils.isNotBlank(startTime) && !"null".equals(startTime),"create_at",startTime)
-                        .le(StringUtils.isNotBlank(endTime) && !"null".equals(endTime),"create_at",endTime)
-                        .orderByDesc("id")
-        );
+    public ExcelData excelPayDetails(CashOutQueryDTO queryDTO) {
+        List<CashOutVO> cashOuts =  baseMapper.excelPayDetails(queryDTO);
         ExcelData data = new ExcelData();
         data.setName("提现列表");
-        List<String> titles = new ArrayList();
-        titles.add("编号");titles.add("提现方式");titles.add("支付宝账号");titles.add("支付宝名称");titles.add("微信二维码");
-        titles.add("提现金额");titles.add("状态");
-        titles.add("拒绝原因");titles.add("申请时间");titles.add("转账/拒绝时间");titles.add("转账订单号");
-        data.setTitles(titles);
-        List<List<Object>> rows = new ArrayList();
-        for(CashOut cashOut:cashOutList){
-            List<Object> row = new ArrayList();
-            row.add(cashOut.getId());
-            if(cashOut.getClassify()==1){
-                row.add("支付宝提现");
-            }else{
-                row.add("微信");
-            }
-            row.add(cashOut.getZhifubao());row.add(cashOut.getZhifubaoName());row.add(StringUtils.isNotBlank(cashOut.getCashQrCode())?cashOut.getCashQrCode():"");
-            row.add(cashOut.getMoney());
-
-
-
-            if(cashOut.getState()==-1){
-                row.add("已拒绝");
-            }else if(cashOut.getState()==0){
-                row.add("待转账");
-            }else{
-                row.add("成功");
-            }
-            row.add(cashOut.getRefund()==null?"":cashOut.getRefund());
-            row.add(cashOut.getCreateAt());
-            row.add(StringUtils.isEmpty(cashOut.getOutAt())?"":cashOut.getOutAt());
-            row.add(cashOut.getOrderNumber());
-            rows.add(row);
-        }
+        data.setTitles(getPayDetailExportTitle());
+        List<List<Object>> rows = cashOuts.stream().map(cashOutVO -> convertToRow(cashOutVO)).collect(Collectors.toList());
         data.setRows(rows);
         return data;
     }
 
-
     @Override
     public CashOut selectById(Long id) {
         return cashOutDao.selectById(id);
@@ -206,13 +132,11 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
         return cashOutDao.insert(cashOut);
     }
 
-
     @Override
     public int update(CashOut cashOut) {
         return cashOutDao.updateById(cashOut);
     }
 
-
     @Override
     public void cashOutSuccess(UserEntity userByWxId, String date, String money, String payWay, String url) {
         if (userByWxId != null) {
@@ -642,15 +566,78 @@ public class CashOutServiceImpl extends ServiceImpl<CashOutDao, CashOut> impleme
     }
 
     @Override
-    public Double selectCashOutTotal(Map<String, Object> params) {
-        return this.baseMapper.selectCashOutTotal(params);
+    public Double selectCashOutTotal(CashOutQueryDTO queryDTO) {
+        return this.baseMapper.selectCashOutTotal(queryDTO);
     }
 
     @Override
-    public Double selectCommissionTotal(Map<String, Object> params) {
+    public Double selectCommissionTotal(CashOutQueryDTO queryDTO) {
         // state为1,表示提现成功
-        params.put("state", "1");
-        return this.baseMapper.selectCommissionTotal(params);
+        queryDTO.setState(1);
+        return this.baseMapper.selectCommissionTotal(queryDTO);
     }
 
+    /**
+     * CashOutVO转换成row
+     * @param cashOutVO vo
+     * @return row
+     */
+    private List<Object> convertToRow(CashOutVO cashOutVO) {
+        List<Object> row = new ArrayList();
+        row.add(cashOutVO.getId());
+        row.add(cashOutVO.getShopName());
+        if(cashOutVO.getClassify() == 1){
+            row.add("支付宝");
+        } else if (cashOutVO.getClassify() == 5) {
+            row.add("银行卡");
+        } else {
+            row.add("微信");
+        }
+        row.add(cashOutVO.getBankCardNo());
+        row.add(cashOutVO.getBankRealName());
+        row.add(cashOutVO.getOpenBank());
+        row.add(cashOutVO.getZhifubao());
+        row.add(cashOutVO.getZhifubaoName());
+        row.add(StringUtils.isNotBlank(cashOutVO.getCashQrCode()) ? cashOutVO.getCashQrCode() : "");
+        row.add(cashOutVO.getMoney());
+        row.add(cashOutVO.getRate());
+        row.add(cashOutVO.getCurrentBalance());
+        if(cashOutVO.getState() == -1){
+            row.add("已拒绝");
+        }else if(cashOutVO.getState() == 0){
+            row.add("待转账");
+        }else{
+            row.add("成功");
+        }
+        row.add(cashOutVO.getRefund() == null ? "" : cashOutVO.getRefund());
+        row.add(cashOutVO.getCreateAt());
+        row.add(StringUtils.isEmpty(cashOutVO.getOutAt()) ? "" : cashOutVO.getOutAt());
+        row.add(cashOutVO.getOrderNumber());
+        return row;
+    }
+
+    /**
+     * 获取导出文件标题
+     * @return title
+     */
+    private List<String> getPayDetailExportTitle() {
+        return Arrays.asList(
+                "编号",
+                "店铺名称",
+                "提现方式",
+                "银行卡号",
+                "银行卡户主姓名",
+                "银行卡开户行",
+                "支付宝账号",
+                "支付宝名称",
+                "微信二维码",
+                "提现金额",
+                "提现手续费",
+                "当前余额",
+                "状态",
+                "拒绝原因",
+                "申请时间",
+                "转账拒绝时间",
+                "转账订单号");
+    }
 }

+ 22 - 14
src/main/java/com/sqx/modules/shop/controller/app/ShopMoneyController.java

@@ -3,7 +3,6 @@ package com.sqx.modules.shop.controller.app;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
-import com.sqx.modules.app.annotation.Login;
 import com.sqx.modules.app.dao.UserDao;
 import com.sqx.modules.app.entity.UserEntity;
 import com.sqx.modules.app.service.UserMoneyDetailsService;
@@ -13,20 +12,24 @@ import com.sqx.modules.datacentre.entity.SysUserShop;
 import com.sqx.modules.goods.dao.GoodsShopDao;
 import com.sqx.modules.goods.entity.GoodsShop;
 import com.sqx.modules.pay.controller.app.AliPayController;
+import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
 import com.sqx.modules.pay.service.CashOutService;
 import com.sqx.modules.pay.service.WxService;
-import com.sqx.modules.shop.service.ShopMoneyService;
 import com.sqx.modules.sys.controller.AbstractController;
 import com.sqx.modules.sys.dao.SysUserDao;
 import com.sqx.modules.sys.entity.SysUserEntity;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+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 java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.Map;
 
 @Api(tags={"商户端-商户钱包"})
 @RestController
@@ -106,25 +109,30 @@ public class ShopMoneyController extends AbstractController {
         return Result.success();
     }
 
-
     @RequestMapping(value = "/selectCashOutList", method = RequestMethod.GET)
     @ApiOperation("查询提现记录列表")
     @ResponseBody
-    public Result selectHelpProfit(int page, int limit,Long shopId){
+    public Result selectHelpProfit(Integer page, Integer limit, Long shopId){
+        CashOutQueryDTO queryDTO = new CashOutQueryDTO();
+        if (page != null) {
+            queryDTO.setPage(page);
+        }
 
-        Map<String,Object> map=new HashMap<>();
-        map.put("page",page);
-        map.put("limit",limit);
-        if(shopId!=null){
+        if (limit != null) {
+            queryDTO.setLimit(limit);
+        }
+
+        if(shopId != null){
             GoodsShop goodsShop = goodsShopDao.selectById(shopId);
-            map.put("userId",goodsShop.getUserId().toString());
+            queryDTO.setUserId(goodsShop.getUserId());
         }else{
             SysUserEntity user = getUser();
             Long adminUserId = user.getUserId();
             UserEntity userEntity = userDao.selectOne(new QueryWrapper<UserEntity>().eq("admin_user_id", adminUserId));
-            map.put("userId",userEntity.getUserId().toString());
+            queryDTO.setUserId(userEntity.getUserId());
         }
-        PageUtils pageUtils = cashOutService.selectCashOutList(map);
+
+        PageUtils pageUtils = cashOutService.selectCashOutList(queryDTO);
         return Result.success().put("data",pageUtils);
     }
 

+ 19 - 15
src/main/java/com/sqx/modules/user/controller/UserShopMoneyController.java

@@ -1,23 +1,23 @@
 package com.sqx.modules.user.controller;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
 import com.sqx.modules.app.annotation.Login;
 import com.sqx.modules.app.entity.UserEntity;
 import com.sqx.modules.app.service.UserService;
-import com.sqx.modules.datacentre.entity.SysUserShop;
+import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
 import com.sqx.modules.pay.service.CashOutService;
 import com.sqx.modules.sys.controller.AbstractController;
-import com.sqx.modules.sys.entity.SysUserEntity;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestAttribute;
+import org.springframework.web.bind.annotation.RequestBody;
+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;
 
 @Api(tags = {"用户端-用户钱包"})
 @RestController
@@ -32,13 +32,17 @@ public class UserShopMoneyController extends AbstractController {
     @ApiOperation("查询提现记录列表")
     @ResponseBody
     @Login
-    public Result selectHelpProfit(int page, int limit,@RequestAttribute("userId") Long userId) {
-        Map<String, Object> map = new HashMap<>();
-        map.put("page", page);
-        map.put("limit", limit);
-        UserEntity user = userService.selectUserById(userId);
-        map.put("userId", user.getUserId());
-        PageUtils pageUtils = cashOutService.selectCashOutList(map);
+    public Result selectHelpProfit(Integer page, Integer limit,@RequestAttribute("userId") Long userId) {
+        CashOutQueryDTO queryDTO = new CashOutQueryDTO();
+        if (limit != null) {
+            queryDTO.setLimit(limit);
+        }
+
+        if (page != null) {
+            queryDTO.setPage(page);
+        }
+        queryDTO.setUserId(userId);
+        PageUtils pageUtils = cashOutService.selectCashOutList(queryDTO);
         return Result.success().put("data", pageUtils);
     }
     @Login

+ 19 - 1
src/main/resources/mapper/pay/CashDao.xml

@@ -249,7 +249,7 @@
             <if test="params.phone != null and params.phone != '' and params.phone != 'null'">
                 and co.phone like concat('%',#{params.phone},'%')
             </if>
-            <if test="params.classify == '1'">
+            <if test="params.classify == '1' || params.classify == '5'">
                 and co.classify = #{params.classify}
             </if>
             <if test="params.classify == '2'">
@@ -264,6 +264,16 @@
             <if test="params.shopName != null and params.shopName != '' and params.shopName != 'null'">
                 and gh.shop_name like concat('%',#{params.shopName},'%')
             </if>
+
+            <if test="params.bankCardNo != null and params.bankCardNo != '' and params.bankCardNo != 'null'">
+                and co.bank_card_no = #{params.bankCardNo}
+            </if>
+            <if test="params.bankRealName != null and params.bankRealName != '' and params.bankRealName != 'null'">
+                and co.bank_real_name = #{params.bankRealName}
+            </if>
+            <if test="params.openBank != null and params.openBank != '' and params.openBank != 'null'">
+                and co.open_bank = #{params.openBank}
+            </if>
         </where>
     </sql>
 
@@ -289,4 +299,12 @@
         <include refid="cashOutQueryCondition"></include>
     </select>
 
+    <select id="excelPayDetails" resultType="com.sqx.modules.pay.vo.CashOutVO">
+        select gh.shop_name, co.*
+        from cash_out co
+        left join goods_shop gh on gh.shop_id = co.shop_id
+        <include refid="cashOutQueryCondition"></include>
+        order by id desc
+    </select>
+
 </mapper>