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.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", ShiroKit.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> page = new PageFactory>().defaultPage(); if (false){ page.setRecords(null); }else{ List> withdrawalList = tPubWithdrawalService.getWithdrawalList(page, beginTime, endTime, name, withdrawalType); for (Map 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 = ShiroKit.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 userWithdrawals = userWithdrawalService.selectList(new EntityWrapper().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() .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 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); } }