package com.stylefeng.guns.modular.api;
|
|
|
import com.stylefeng.guns.core.util.MD5Util;
|
import com.stylefeng.guns.core.util.ToolUtil;
|
import com.stylefeng.guns.modular.system.model.Withdrawal;
|
import com.stylefeng.guns.modular.system.service.IDriverService;
|
import com.stylefeng.guns.modular.system.service.IWithdrawalService;
|
import com.stylefeng.guns.modular.system.util.RedisUtil;
|
import com.stylefeng.guns.modular.system.util.ResultUtil;
|
import com.stylefeng.guns.modular.system.warpper.WithdrawalListWarpper;
|
import com.stylefeng.guns.modular.system.warpper.WithdrawalWarpper;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import java.util.*;
|
|
/**
|
* 提现控制器
|
*/
|
@Api
|
@RestController
|
@RequestMapping("")
|
public class WithdrawalController {
|
|
@Autowired
|
private IWithdrawalService withdrawalService;
|
|
@Autowired
|
private IDriverService driverService;
|
|
@Resource
|
private RedisUtil redisUtil;
|
|
|
/**
|
* 账户余额提现操作
|
* @param request
|
* @return
|
*/
|
@ResponseBody
|
@PostMapping("/api/withdrawal/withdrawal")
|
@ApiOperation(value = "账户余额提现【1.1】", tags = {"司机端-个人中心"}, notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(value = "提现金额", name = "money", required = true, dataType = "double"),
|
@ApiImplicitParam(value = "提现类型(1=活动收入提现,2=业务收入提现)", name = "type", required = true, dataType = "int"),
|
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
|
})
|
public ResultUtil withdrawal(Double money, Integer type, String remark, Integer language, HttpServletRequest request){
|
try {
|
Integer uid = driverService.getUserIdFormRedis(request);
|
if(null == uid){
|
return ResultUtil.tokenErr();
|
}
|
String format = String.format("uid=%s&money=%s&type=%s", uid, money, type);
|
String key = MD5Util.encrypt(format);
|
String value = redisUtil.getValue(key);
|
if(ToolUtil.isNotEmpty(value) && (System.currentTimeMillis() - Long.valueOf(value)) <= 1000){
|
return ResultUtil.error(language == 1 ? "请勿重复操作" : language == 2 ? "Don't repeat the operation" : "Ne répétez pas l’opération");
|
}
|
return withdrawalService.withdrawal(money, uid, type, remark, language);
|
}catch (Exception e){
|
e.printStackTrace();
|
return ResultUtil.runErr();
|
}
|
}
|
|
|
/**
|
* 提现后台审核后的处理接口
|
* @param id
|
* @param state
|
* @return
|
*/
|
@ResponseBody
|
@PostMapping("/base/withdrawal/withdrawalAudit")
|
public ResultUtil withdrawalAudit(Integer id, Integer state, Integer language){
|
try {
|
return withdrawalService.withdrawalAudit(id, state, language);
|
}catch (Exception e){
|
e.printStackTrace();
|
return ResultUtil.runErr();
|
}
|
}
|
|
|
|
|
|
/**
|
* 获取历史提现数据
|
* @param pageNum
|
* @param size
|
* @param request
|
* @return
|
*/
|
@ResponseBody
|
@PostMapping("/api/withdrawal/queryWithdrawal")
|
@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=业务收入提现)", name = "type", required = true, dataType = "int"),
|
@ApiImplicitParam(value = "状态(1=处理中,2=已提现,3=提现失败)", name = "state", required = false, dataType = "int"),
|
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
|
})
|
public ResultUtil<WithdrawalWarpper> queryWithdrawal(Integer language, Integer pageNum, Integer size, Integer type, Integer state, HttpServletRequest request){
|
try {
|
Integer uid = driverService.getUserIdFormRedis(request);
|
if(null == uid){
|
return ResultUtil.tokenErr();
|
}
|
List<Map<String, Object>> list = withdrawalService.queryWithdrawal(language, uid, type, state, pageNum, size);
|
List<WithdrawalListWarpper> withdrawalWarpper = WithdrawalListWarpper.getWithdrawalWarpper(list);
|
WithdrawalWarpper withdrawalWarpper1 = new WithdrawalWarpper();
|
withdrawalWarpper1.setTotal(withdrawalService.queryWithdrawalSum(uid, type));
|
withdrawalWarpper1.setList(withdrawalWarpper);
|
return ResultUtil.success(withdrawalWarpper1);
|
}catch (Exception e){
|
e.printStackTrace();
|
return ResultUtil.runErr();
|
}
|
}
|
}
|