Pu Zhibing
9 天以前 4c99ee7028c3fe58a2cd4b8273b22c75c45574fc
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java
@@ -1,9 +1,12 @@
package com.stylefeng.guns.modular.api;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.modular.system.model.Withdrawal;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
import com.stylefeng.guns.modular.system.service.IWithdrawalService;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.WithdrawalVo;
import com.stylefeng.guns.modular.system.warpper.WithdrawalWarpper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -18,6 +21,7 @@
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * 提现控制器
@@ -37,28 +41,25 @@
    /**
     * 账户余额提现操作
     * @param money
     * @param code
     * @param name
     * @param request
     * @return
     */
    @ResponseBody
    @PostMapping("/api/withdrawal/withdrawal")
    @ApiOperation(value = "账户余额提现", tags = {"用户端-个人中心"}, notes = "")
    @ApiOperation(value = "账户余额提现【1.1】", tags = {"用户端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "提现金额", name = "money", required = true, dataType = "double"),
            @ApiImplicitParam(value = "银行卡号", name = "code", required = true, dataType = "string"),
            @ApiImplicitParam(value = "银行卡只有人姓名", name = "name", required = true, dataType = "string"),
            @ApiImplicitParam(value = "备注", name = "remark", required = true, dataType = "String"),
            @ApiImplicitParam(value = "语言类型(1=简体中文,2=英语,3=法语)", name = "language", required = false, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil withdrawal(Double money, String code, String name, Integer language, HttpServletRequest request){
    public ResultUtil withdrawal(Double money, String remark, Integer language, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            return withdrawalService.withdrawal(money, code, name, uid, language);
            return withdrawalService.withdrawal(money, uid, remark, language);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
@@ -75,19 +76,29 @@
     */
    @ResponseBody
    @PostMapping("/api/withdrawal/queryWithdrawal")
    @ApiOperation(value = "获取历史提现数据", tags = {"用户端-个人中心"}, notes = "")
    @ApiOperation(value = "获取历史提现数据【2.0】", tags = {"用户端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
            @ApiImplicitParam(value = "提现状态(1=待处理,2=已提现,3=提现失败)", name = "state", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<WithdrawalWarpper>> queryWithdrawal(Integer pageNum, Integer size, HttpServletRequest request){
    public ResultUtil<List<WithdrawalWarpper>> queryWithdrawal(Integer pageNum, Integer size, Integer state, Integer language, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            List<Map<String, Object>> list = withdrawalService.queryWithdrawal(uid, pageNum, size);
            List<Map<String, Object>> list = withdrawalService.queryWithdrawal(uid, pageNum, size, state, language);
            List<Withdrawal> withdrawals = withdrawalService.selectList(new EntityWrapper<Withdrawal>().eq("userId", uid).eq("userType", 1).ne("flag", 3));
            double withdrawn = withdrawals.stream().filter(s -> s.getState().compareTo(2) == 0).mapToDouble(Withdrawal::getMoney).sum();
            double processing = withdrawals.stream().filter(s -> s.getState().compareTo(1) == 0).mapToDouble(Withdrawal::getMoney).sum();
            double fail = withdrawals.stream().filter(s -> s.getState().compareTo(3) == 0).mapToDouble(Withdrawal::getMoney).sum();
            for (Map<String, Object> map : list) {
                map.put("withdrawn", withdrawn);
                map.put("processing", processing);
                map.put("fail", fail);
            }
            return ResultUtil.success(WithdrawalWarpper.getWithdrawalWarpper(list));
        }catch (Exception e){
            e.printStackTrace();