package com.stylefeng.guns.modular.system.controller.general;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.baomidou.mybatisplus.plugins.Page;
|
import com.stylefeng.guns.core.base.controller.BaseController;
|
import com.stylefeng.guns.core.beetl.ShiroExtUtil;
|
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
|
import com.stylefeng.guns.core.shiro.ShiroKit;
|
import com.stylefeng.guns.core.util.SinataUtil;
|
import com.stylefeng.guns.modular.system.model.*;
|
import com.stylefeng.guns.modular.system.service.*;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.Model;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import javax.annotation.Resource;
|
import java.math.BigDecimal;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 提现列表控制器
|
*
|
* @author fengshuonan
|
* @Date 2020-06-09 09:30:59
|
*/
|
@Controller
|
@Slf4j
|
@RequestMapping("/tPubWithdrawal")
|
public class TPubWithdrawalController extends BaseController {
|
|
private String PREFIX = "/system/tPubWithdrawal/";
|
|
@Autowired
|
private ITPubWithdrawalService tPubWithdrawalService;
|
|
@Autowired
|
private ITSystemNoticeService tSystemNoticeService;
|
@Resource
|
private IUserWithdrawalService userWithdrawalService;
|
|
/**
|
* 跳转到提现列表首页
|
*/
|
@RequestMapping("")
|
public String index(Model model) {
|
model.addAttribute("id", ShiroExtUtil.getUser().getObjectId());
|
return PREFIX + "tPubWithdrawal.html";
|
}
|
|
/**
|
* 跳转到查看详情
|
*/
|
@RequestMapping("/lookDetail/{id}/{type}")
|
public String lookDetail(@PathVariable Integer id, @PathVariable Integer type, Model model) {
|
TPubWithdrawal tPubWithdrawal = tPubWithdrawalService.selectById(id);
|
String str = "";
|
if (1 == type){
|
str = tPubWithdrawal.getRemark();
|
}
|
model.addAttribute("str",str);
|
return "/system/tComplaint/lookDetail.html";
|
}
|
|
/**
|
* 跳转到立即处理页面
|
*/
|
@RequestMapping("/tPubWithdrawal_immediately/{tPubWithdrawalId}")
|
public String tPubWithdrawalUpdate(@PathVariable Integer tPubWithdrawalId, Model model) {
|
model.addAttribute("tPubWithdrawalId",tPubWithdrawalId);
|
return PREFIX + "tPubWithdrawal_immediately.html";
|
}
|
|
/**
|
* 获取提现列表列表
|
*/
|
@RequestMapping(value = "/list")
|
@ResponseBody
|
public Object list(String insertTime,
|
String name,
|
Integer withdrawalType) {
|
String beginTime = null;
|
String endTime = null;
|
if (SinataUtil.isNotEmpty(insertTime)){
|
String[] timeArray = insertTime.split(" - ");
|
beginTime = timeArray[0];
|
endTime = timeArray[1];
|
}
|
Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
|
if (false){
|
page.setRecords(null);
|
}else{
|
List<Map<String, Object>> withdrawalList = tPubWithdrawalService.getWithdrawalList(page, beginTime, endTime, name, withdrawalType);
|
for (Map<String, Object> map : withdrawalList) {
|
String money = map.get("money").toString();
|
String realGetMoney = map.get("realGetMoney").toString();
|
map.put("overMoeny",new BigDecimal(money).subtract(new BigDecimal(realGetMoney)));
|
}
|
page.setRecords(withdrawalList);
|
}
|
return super.packForBT(page);
|
}
|
|
/**
|
* 新增提现列表
|
*/
|
@RequestMapping(value = "/add")
|
@ResponseBody
|
public Object add(TPubWithdrawal tPubWithdrawal) {
|
tPubWithdrawalService.insert(tPubWithdrawal);
|
return SUCCESS_TIP;
|
}
|
|
@Resource
|
private ITDriverService driverService;
|
|
@Resource
|
private ITUserService userService;
|
/**
|
* 立即处理操作
|
*/
|
@RequestMapping(value = "/immediately")
|
@ResponseBody
|
public synchronized Object immediately(@RequestParam Integer id,@RequestParam Integer state,@RequestParam String remark) {
|
TPubWithdrawal tPubWithdrawal = tPubWithdrawalService.selectById(id);
|
if(tPubWithdrawal.getState()!=1){
|
return SUCCESS_TIP;
|
}
|
tPubWithdrawal.setRemark(remark);
|
tPubWithdrawal.setHandleTime(new Date());
|
if (SinataUtil.isNotEmpty(tPubWithdrawal)){
|
// tPubWithdrawal.setState(state); //调用接口修改状态
|
|
|
|
|
Integer stateObj = 1;
|
if (2 == state){ //同意提现
|
stateObj = 1;
|
}else if (3 == state){ //拒绝提现
|
stateObj = 2;
|
}
|
|
Integer objectId = ShiroExtUtil.getUser().getObjectId();
|
// 获取手续费
|
Double poundage = tPubWithdrawalService.getPoundage(objectId);
|
if(poundage!=null && poundage>0){
|
BigDecimal money = tPubWithdrawal.getMoney();
|
if(money.doubleValue()>=1){
|
BigDecimal divide = new BigDecimal(poundage).divide(new BigDecimal(100));
|
tPubWithdrawal.setMoney(money.subtract(money.multiply(divide)));
|
}
|
}
|
Integer userType = tPubWithdrawal.getUserType();
|
if(stateObj==1){
|
if(userType==1){
|
TUser tUser1 = userService.selectById(tPubWithdrawal.getUserId());
|
// 用户
|
List<UserWithdrawal> userWithdrawals = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>().eq("phone", tUser1.getPhone()).eq("applicationStatus","succeeded"));
|
if(userWithdrawals.size()>0) {
|
System.out.println("用户:" + userWithdrawals);
|
System.out.println("用户:" + userWithdrawals.get(0));
|
tPubWithdrawalService.updateById(tPubWithdrawal);
|
}else {
|
return "该用户未进件";
|
}
|
}else {
|
// 司机.
|
// 查询当前操作电子用户
|
TDriver tUser1 = driverService.selectById(tPubWithdrawal.getUserId());
|
UserWithdrawal userWithdrawal = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>()
|
.eq("phone", tUser1.getPhone())
|
.last("LIMIT 1"));
|
// 先从平台进行分账到用户电子账簿
|
if (userWithdrawal == null) {
|
return "该司机未进件";
|
}
|
log.info("司机提现创建=========");
|
tPubWithdrawalService.updateById(tPubWithdrawal);
|
log.info("司机提现创建成功=========");
|
}
|
}else {
|
tPubWithdrawal.setState(state);
|
tPubWithdrawalService.updateById(tPubWithdrawal);
|
// 拒绝 返回余额
|
if(userType==1){
|
TUser tUser = userService.selectById(tPubWithdrawal.getUserId());
|
BigDecimal balance = tUser.getBalance();
|
BigDecimal money = balance.add(tPubWithdrawal.getMoney());
|
tUser.setBalance(money);
|
userService.updateById(tUser);
|
}else {
|
TDriver tDriver = driverService.selectById(tPubWithdrawal.getUserId());
|
if(tPubWithdrawal.getType()==2){
|
BigDecimal balance = new BigDecimal(tDriver.getLaveBusinessMoney());
|
BigDecimal money = balance.add(tPubWithdrawal.getMoney());
|
tDriver.setLaveBusinessMoney(money.doubleValue());
|
}else
|
{
|
BigDecimal balance = new BigDecimal(tDriver.getLaveActivityMoney());
|
BigDecimal money = balance.add(tPubWithdrawal.getMoney());
|
tDriver.setLaveActivityMoney(money.doubleValue());
|
}
|
|
driverService.updateById(tDriver);
|
}
|
}
|
// Map<String,String> map = new HashMap<>();
|
// map.put("id", String.valueOf(tPubWithdrawal.getId()));
|
// map.put("state", String.valueOf(stateObj));
|
// String result = HttpRequestUtil.postRequest(PushURL.withdraw_auth_url, map);
|
// System.out.println("提现审核接口 :【recordId="+tPubWithdrawal.getId().toString()+"】,调用接口:"+result);
|
//增加系统消息
|
TSystemNotice notice = new TSystemNotice();
|
notice.setType(2);
|
notice.setUserType(tPubWithdrawal.getUserType());
|
notice.setContent("提现处理结果:【"+remark+"】。");
|
notice.setUserId(tPubWithdrawal.getUserId());
|
notice.setInsertTime(new Date());
|
notice.setRead(1);
|
tSystemNoticeService.insert(notice);
|
|
}
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 修改提现列表
|
*/
|
@RequestMapping(value = "/update")
|
@ResponseBody
|
public Object update(TPubWithdrawal tPubWithdrawal) {
|
tPubWithdrawalService.updateById(tPubWithdrawal);
|
return SUCCESS_TIP;
|
}
|
|
|
/**
|
* 提现列表详情
|
*/
|
@RequestMapping(value = "/detail/{tPubWithdrawalId}")
|
@ResponseBody
|
public Object detail(@PathVariable("tPubWithdrawalId") Integer tPubWithdrawalId) {
|
return tPubWithdrawalService.selectById(tPubWithdrawalId);
|
}
|
|
|
|
}
|