From ba28ae386403cf6a9c9b722580dcb732a2294471 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 05 七月 2023 20:09:12 +0800 Subject: [PATCH] 新增提现部分代码 --- ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 105 insertions(+), 14 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 1bf6156..a1a5b4d 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,19 +10,28 @@ 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.*; /** @@ -39,6 +50,22 @@ @Autowired private ITSystemNoticeService tSystemNoticeService; + + @Autowired + private TinggPayoutUtil tinggPayoutUtil; + + @Autowired + private ITUserService userService; + + @Autowired + private ITDriverService driverService; + + @Value("${callbackPath}") + private String callbackPath; + + + + /** * 跳转到提现列表首页 @@ -117,23 +144,53 @@ 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 + "/tPubWithdrawal/base/withdrawalCallback", "用户提现"); + 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()); + }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(); @@ -148,6 +205,40 @@ 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; + } + + + + /** * 修改提现列表 */ -- Gitblit v1.7.1