From f9fff682ff6b21344401bb86f85d25c97c37b073 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期一, 22 七月 2024 17:01:37 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/2.0' into 2.0 --- ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TPubWithdrawalController.java | 178 +++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 124 insertions(+), 54 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..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,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.*; /** @@ -29,7 +40,7 @@ * @Date 2020-06-09 09:30:59 */ @Controller -@RequestMapping("/tPubWithdrawal") +@RequestMapping("") public class TPubWithdrawalController extends BaseController { private String PREFIX = "/system/tPubWithdrawal/"; @@ -40,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"; } @@ -51,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 = ""; @@ -66,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"; @@ -75,7 +102,7 @@ /** * 获取提现列表列表 */ - @RequestMapping(value = "/list") + @RequestMapping(value = "/tPubWithdrawal/list") @ResponseBody public Object list(String insertTime, String name, @@ -102,7 +129,7 @@ /** * 新增提现列表 */ - @RequestMapping(value = "/add") + @RequestMapping(value = "/tPubWithdrawal/add") @ResponseBody public Object add(TPubWithdrawal tPubWithdrawal) { tPubWithdrawalService.insert(tPubWithdrawal); @@ -112,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(); @@ -148,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); @@ -161,7 +253,7 @@ /** * 提现列表详情 */ - @RequestMapping(value = "/detail/{tPubWithdrawalId}") + @RequestMapping(value = "/tPubWithdrawal/detail/{tPubWithdrawalId}") @ResponseBody public Object detail(@PathVariable("tPubWithdrawalId") Integer tPubWithdrawalId) { return tPubWithdrawalService.selectById(tPubWithdrawalId); @@ -178,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; @@ -194,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("备注"); @@ -224,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()){ @@ -256,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("-"); } @@ -277,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