From cf71570fb38ad1983cd40e65fb09e259e509d2a3 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 06 五月 2024 09:36:45 +0800
Subject: [PATCH] 修改bug
---
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java | 179 +++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 124 insertions(+), 55 deletions(-)
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java
index bc8208a..7c9f484 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java
@@ -1,5 +1,7 @@
package com.stylefeng.guns.modular.system.controller.general;
+import com.alibaba.fastjson.JSON;
+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;
@@ -8,29 +10,37 @@
import com.stylefeng.guns.core.util.ExcelExportUtil;
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.util.Tingg.model.*;
+import com.stylefeng.guns.modular.system.model.TDriver;
import com.stylefeng.guns.modular.system.model.TPubWithdrawal;
import com.stylefeng.guns.modular.system.model.TSystemNotice;
+import com.stylefeng.guns.modular.system.model.TUser;
+import com.stylefeng.guns.modular.system.service.ITDriverService;
import com.stylefeng.guns.modular.system.service.ITPubWithdrawalService;
import com.stylefeng.guns.modular.system.service.ITSystemNoticeService;
-import com.stylefeng.guns.modular.system.util.HttpRequestUtil;
-import com.stylefeng.guns.modular.system.util.PushURL;
+import com.stylefeng.guns.modular.system.service.ITUserService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
+import com.stylefeng.guns.modular.system.util.Tingg.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
import java.util.*;
/**
* 提现列表控制器
- *
* @author fengshuonan
* @Date 2020-06-09 09:30:59
*/
@Controller
-@RequestMapping("/tPubWithdrawal")
+@RequestMapping("")
public class TPubWithdrawalController extends BaseController {
private String PREFIX = "/system/tPubWithdrawal/";
@@ -41,10 +51,26 @@
@Autowired
private ITSystemNoticeService tSystemNoticeService;
+ @Autowired
+ private TinggPayoutUtil tinggPayoutUtil;
+
+ @Autowired
+ private ITUserService userService;
+
+ @Autowired
+ private ITDriverService driverService;
+
+ @Value("${callbackPath}")
+ private String callbackPath;
+
+
+
+
+
/**
* 跳转到提现列表首页
*/
- @RequestMapping("")
+ @RequestMapping("/tPubWithdrawal")
public String index() {
return PREFIX + "tPubWithdrawal.html";
}
@@ -52,7 +78,7 @@
/**
* 跳转到查看详情
*/
- @RequestMapping("/lookDetail/{id}/{type}")
+ @RequestMapping("/tPubWithdrawal/lookDetail/{id}/{type}")
public String lookDetail(@PathVariable Integer id, @PathVariable Integer type, Model model) {
TPubWithdrawal tPubWithdrawal = tPubWithdrawalService.selectById(id);
String str = "";
@@ -67,7 +93,7 @@
* 跳转到立即处理页面
* ----------改为批量
*/
- @RequestMapping("/tPubWithdrawal_immediately/{tPubWithdrawalIds}")
+ @RequestMapping("/tPubWithdrawal/tPubWithdrawal_immediately/{tPubWithdrawalIds}")
public String tPubWithdrawalUpdate(@PathVariable String tPubWithdrawalIds, Model model) {
model.addAttribute("tPubWithdrawalIds",tPubWithdrawalIds);
return PREFIX + "tPubWithdrawal_immediately.html";
@@ -76,7 +102,7 @@
/**
* 获取提现列表列表
*/
- @RequestMapping(value = "/list")
+ @RequestMapping(value = "/tPubWithdrawal/list")
@ResponseBody
public Object list(String insertTime,
String name,
@@ -103,7 +129,7 @@
/**
* 新增提现列表
*/
- @RequestMapping(value = "/add")
+ @RequestMapping(value = "/tPubWithdrawal/add")
@ResponseBody
public Object add(TPubWithdrawal tPubWithdrawal) {
tPubWithdrawalService.insert(tPubWithdrawal);
@@ -113,28 +139,59 @@
/**
* 立即处理操作
*/
- @RequestMapping(value = "/immediately")
+ @RequestMapping(value = "/tPubWithdrawal/immediately")
@ResponseBody
public Object immediately(@RequestParam Integer id,@RequestParam Integer state,@RequestParam String remark) {
TPubWithdrawal tPubWithdrawal = tPubWithdrawalService.selectById(id);
if (SinataUtil.isNotEmpty(tPubWithdrawal)){
-// tPubWithdrawal.setState(state); //调用接口修改状态
tPubWithdrawal.setRemark(remark);
- tPubWithdrawal.setHandleTime(new Date());
- Integer stateObj = 1;
- if (2 == state){ //同意提现
- stateObj = 1;
- }else if (3 == state){ //拒绝提现
- stateObj = 2;
+ String serviceCode = "";
+ String phone = "";
+ if(tPubWithdrawal.getUserType() == 1){
+ TUser tUser = userService.selectById(tPubWithdrawal.getUserId());
+ serviceCode = tUser.getPhoneOperator();
+ phone = tUser.getPhone();
+ }else{
+ TDriver tDriver = driverService.selectById(tPubWithdrawal.getUserId());
+ serviceCode = tDriver.getPhoneOperator();
+ phone = tDriver.getPhone();
+ }
+ if(2 == state){
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+ String payerTransactionID = sdf.format(new Date()) + tPubWithdrawal.getId();
+ PayoutResponse payoutResponse = tinggPayoutUtil.sendPayout(serviceCode, phone, payerTransactionID, tPubWithdrawal.getMoney().doubleValue(), callbackPath + "/base/withdrawalCallback", remark);
+ AuthStatus authStatus = payoutResponse.getAuthStatus();
+ Results results = payoutResponse.getResults().get(0);
+ String statusCode = results.getStatusCode();
+ if(!"131".equals(authStatus.getAuthStatusCode())){
+ return ResultUtil.error(authStatus.getAuthStatusDescription());
+ }
+ if(!"139".equals(statusCode)){
+ return ResultUtil.error(results.getStatusDescription());
+ }
+ tPubWithdrawal.setSerialNo(results.getBeepTransactionID());
+ tPubWithdrawal.setState(4);
+ }else{//回退金额
+ tPubWithdrawal.setHandleTime(new Date());
+ tPubWithdrawal.setState(state);
+ if(tPubWithdrawal.getUserType() == 1){
+ TUser tUser = userService.selectById(tPubWithdrawal.getUserId());
+ tUser.setBalance(tUser.getBalance().add(tPubWithdrawal.getMoney()));
+ userService.updateById(tUser);
+ }else{
+ TDriver tDriver = driverService.selectById(tPubWithdrawal.getUserId());
+ tDriver.setBalance(tDriver.getBalance().add(tPubWithdrawal.getMoney()));
+ if(tPubWithdrawal.getType() == 1){//活动提现
+ tDriver.setLaveActivityMoney(new BigDecimal(tDriver.getLaveActivityMoney()).add(tPubWithdrawal.getMoney()).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
+ }else{//业务提现
+ tDriver.setLaveBusinessMoney(new BigDecimal(tDriver.getLaveBusinessMoney()).add(tPubWithdrawal.getMoney()).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
+ }
+ driverService.updateById(tDriver);
+ }
}
tPubWithdrawalService.updateById(tPubWithdrawal);
- 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();
@@ -149,10 +206,44 @@
return SUCCESS_TIP;
}
+
+ @ResponseBody
+ @PostMapping("/base/withdrawalCallback")
+ public PayoutCallbackResponse tinggPayoutCallback(@RequestBody PayoutCallbackRequest request){
+ System.err.println("转账回调>>>>" + JSON.toJSONString(request));
+ PayoutCallbackResponse payoutCallbackResponse = new PayoutCallbackResponse();
+ AuthStatus authStatus = new AuthStatus();
+ authStatus.setAuthStatusCode(131);
+ authStatus.setAuthStatusDescription("Authentication was successful");
+ payoutCallbackResponse.setAuthStatus(authStatus);
+ Results results = new Results();
+ PayoutPacket packet = request.getPayload().getPacket();
+ String statusCode = packet.getStatusCode();
+ String beepTransactionID = packet.getBeepTransactionID();
+ String payerTransactionID = packet.getPayerTransactionID();
+
+ String id = payerTransactionID.substring(17);
+ TPubWithdrawal tPubWithdrawal = tPubWithdrawalService.selectById(id);
+ tPubWithdrawal.setState(2);
+ tPubWithdrawal.setHandleTime(new Date());
+ tPubWithdrawal.setSerialNo(beepTransactionID);
+ tPubWithdrawalService.updateById(tPubWithdrawal);
+
+ results.setBeepTransactionID(beepTransactionID);
+ results.setPayerTransactionID(payerTransactionID);
+ results.setStatusCode("188");
+ results.setStatusDescription("Response was received");
+ payoutCallbackResponse.setResults(results);
+ return payoutCallbackResponse;
+ }
+
+
+
+
/**
* 修改提现列表
*/
- @RequestMapping(value = "/update")
+ @RequestMapping(value = "/tPubWithdrawal/update")
@ResponseBody
public Object update(TPubWithdrawal tPubWithdrawal) {
tPubWithdrawalService.updateById(tPubWithdrawal);
@@ -162,7 +253,7 @@
/**
* 提现列表详情
*/
- @RequestMapping(value = "/detail/{tPubWithdrawalId}")
+ @RequestMapping(value = "/tPubWithdrawal/detail/{tPubWithdrawalId}")
@ResponseBody
public Object detail(@PathVariable("tPubWithdrawalId") Integer tPubWithdrawalId) {
return tPubWithdrawalService.selectById(tPubWithdrawalId);
@@ -179,7 +270,7 @@
* @param type
* @param state
*/
- @RequestMapping(value = "/downloadList",method = RequestMethod.GET)
+ @RequestMapping(value = "/tPubWithdrawal/downloadList",method = RequestMethod.GET)
public void downloadList(String insertTime, String name, Integer withdrawalType, Integer userType, Integer type, Integer state,
HttpServletRequest request, HttpServletResponse response){
String start = null;
@@ -195,13 +286,11 @@
List<String> shellList = new ArrayList<String>();
shellList.add("申请时间");
shellList.add("提现人");
- shellList.add("银行卡号");
- shellList.add("开户行");
- shellList.add("提现方式");
+ shellList.add("提现手机号");
shellList.add("账户类型");
+ shellList.add("提现金额");
shellList.add("提现类型");
shellList.add("账户余额");
- shellList.add("提现金额");
shellList.add("联系人");
shellList.add("联系电话");
shellList.add("备注");
@@ -225,26 +314,6 @@
}else{
shellList.add("-");
}
- if(SinataUtil.isNotEmpty(map.get("bankName"))){
- shellList.add(map.get("bankName").toString());
- }else{
- shellList.add("-");
- }
- //withdrawalType
- if(SinataUtil.isNotEmpty(map.get("withdrawalType"))){
- switch (map.get("withdrawalType").toString()){
- case "1":
- shellList.add("银行卡");
- break;
- case "2":
- shellList.add("线下");
- break;
- default:
- shellList.add("-");
- }
- }else{
- shellList.add("-");
- }
//userType
if(SinataUtil.isNotEmpty(map.get("userType"))){
switch (map.get("userType").toString()){
@@ -257,6 +326,12 @@
default:
shellList.add("-");
}
+ }else{
+ shellList.add("-");
+ }
+ //money
+ if(SinataUtil.isNotEmpty(map.get("money"))){
+ shellList.add(map.get("money").toString());
}else{
shellList.add("-");
}
@@ -278,12 +353,6 @@
//balance
if(SinataUtil.isNotEmpty(map.get("balance"))){
shellList.add(map.get("balance").toString());
- }else{
- shellList.add("-");
- }
- //money
- if(SinataUtil.isNotEmpty(map.get("money"))){
- shellList.add(map.get("money").toString());
}else{
shellList.add("-");
}
--
Gitblit v1.7.1