From 92e00dafd06ec748b51f565c7a4c98986a618de9 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期六, 03 六月 2023 02:01:40 +0800 Subject: [PATCH] 新增加分账功能 --- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java | 124 +++++++++++++++++++++++++++++++++-------- 1 files changed, 99 insertions(+), 25 deletions(-) diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java index c1e2a4a..c33c28e 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java @@ -1,12 +1,16 @@ package com.supersavedriving.driver.modular.system.api; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.supersavedriving.driver.modular.system.model.Driver; import com.supersavedriving.driver.modular.system.model.DriverBank; import com.supersavedriving.driver.modular.system.model.Edition; import com.supersavedriving.driver.modular.system.model.JoiningRequirements; import com.supersavedriving.driver.modular.system.service.*; +import com.supersavedriving.driver.modular.system.util.MallBook.model.InterfaceResponse; import com.supersavedriving.driver.modular.system.util.MallBook.model.Register; +import com.supersavedriving.driver.modular.system.util.MallBook.util.RSASignature; import com.supersavedriving.driver.modular.system.util.MallBook.util.TrhRequest; import com.supersavedriving.driver.modular.system.util.PayMoneyUtil; import com.supersavedriving.driver.modular.system.util.huawei.OBSUtil; @@ -25,10 +29,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -391,7 +392,7 @@ @ResponseBody @PostMapping("/api/driver/queryDriverInfo") // @ServiceLog(name = "获取司机个人信息", url = "/api/driver/queryDriverInfo") - @ApiOperation(value = "获取司机个人信息", tags = {"司机端-个人中心"}, notes = "") + @ApiOperation(value = "获取司机个人信息【1.1】", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) @@ -588,15 +589,16 @@ @ResponseBody @PostMapping("/api/driver/withdrawCash") // @ServiceLog(name = "司机提现操作", url = "/api/driver/withdrawCash") - @ApiOperation(value = "司机提现操作", tags = {"司机端-个人中心"}, notes = "") + @ApiOperation(value = "司机提现操作【1.1】", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "类型(1=余额提现,2=佣金提现)", name = "type", required = true, dataType = "int"), + @ApiImplicitParam(value = "银行卡id", name = "bankId", required = true, dataType = "int"), @ApiImplicitParam(value = "提现金额", name = "money", required = true, dataType = "double"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResponseWarpper withdrawCash(Integer type, Double money){ - if(null == type){ - return ResponseWarpper.success(ResultUtil.paranErr("type")); + public ResponseWarpper withdrawCash(Integer type, Integer bankId, Double money){ + if(null == bankId){ + return ResponseWarpper.success(ResultUtil.paranErr("bankId")); } if(null == money){ return ResponseWarpper.success(ResultUtil.paranErr("money")); @@ -606,7 +608,7 @@ if(null == uid){ return ResponseWarpper.tokenErr(); } - ResultUtil resultUtil = cashWithdrawalService.withdrawCash(uid, type, money); + ResultUtil resultUtil = cashWithdrawalService.withdrawCash(uid, type, bankId, money); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); @@ -675,6 +677,39 @@ } + + @ResponseBody + @PostMapping("/base/driver/balanceRecharge1") +// @ServiceLog(name = "账户余额充值(跳小程序支付)", url = "/api/driver/balanceRecharge") + @ApiOperation(value = "账户余额充值(跳小程序支付)", tags = {"司机端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "小程序code", name = "jscode", required = true, dataType = "string"), + @ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int"), + @ApiImplicitParam(value = "充值金额", name = "amount", required = true, dataType = "double"), + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper balanceRecharge1(String jscode, Integer driverId, Double amount){ + if(null == jscode){ + return ResponseWarpper.success(ResultUtil.paranErr("jscode")); + } + if(null == driverId){ + return ResponseWarpper.success(ResultUtil.paranErr("driverId")); + } + if(null == amount){ + return ResponseWarpper.success(ResultUtil.paranErr("amount")); + } + try { + ResultUtil resultUtil = driverService.balanceRecharge1(driverId, jscode, amount); + return ResponseWarpper.success(resultUtil); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } + + + + /** * 账户余额充值支付回调 * @param request @@ -682,19 +717,26 @@ */ @ResponseBody @PostMapping("/base/driver/balanceRechargeCallback") - public void balanceRechargeCallback(HttpServletRequest request, HttpServletResponse response){ + public void balanceRechargeCallback(@RequestBody InterfaceResponse interfaceResponse, HttpServletResponse response){ try { - Map<String, String> map = payMoneyUtil.weixinpayCallback(request); - if(null != map){ - String out_trade_no = map.get("out_trade_no"); - String transaction_id = map.get("transaction_id"); - String result = map.get("result"); - String orderId = out_trade_no.substring(17); - driverService.balanceRechargeCallback(out_trade_no, transaction_id); + // 验签 + boolean verify = RSASignature.validate(interfaceResponse.content(), interfaceResponse.getSign()); + if (verify) {//验签成功业务处理逻辑 + if(!"0000".equals(interfaceResponse.getCode())){ + System.err.println("充值回调异常:" + interfaceResponse.getMsg()); + return; + } + JSONObject jsonObject = JSON.parseObject(interfaceResponse.getResult()); + String merOrderId = jsonObject.getString("merOrderId"); + String out_trade_no = jsonObject.getString("parameter1"); + driverService.balanceRechargeCallback(out_trade_no, merOrderId); + response.setStatus(200); PrintWriter out = response.getWriter(); - out.print(result); + out.print("OK"); out.flush(); out.close(); + } else {//验签失败业务处理逻辑 + System.err.println("支付回调验签失败"); } }catch (Exception e){ e.printStackTrace(); @@ -902,7 +944,7 @@ @ResponseBody @PostMapping("/api/driver/microenterprise") // @ServiceLog(name = "绑定商户", url = "/api/driver/microenterprise") - @ApiOperation(value = "绑定商户", tags = {"司机端-个人中心"}, notes = "") + @ApiOperation(value = "绑定商户【1.1】", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "姓名", name = "name", required = true, dataType = "String"), @ApiImplicitParam(value = "身份证号码", name = "IDCode", required = true, dataType = "String"), @@ -915,7 +957,7 @@ if(null == uid){ return ResponseWarpper.tokenErr(); } - ResultUtil resultUtil = driverService.microenterprise(uid, name, IDCode, phone); + ResultUtil resultUtil = driverService.microenterprise(uid, name, IDCode, phone, "/base/driver/microenterpriseCallback"); return ResponseWarpper.success(resultUtil); }catch (Exception e){ e.printStackTrace(); @@ -924,12 +966,22 @@ } + /** + * 注册商户回调 + * @param jsonObject + */ + @ResponseBody + @PostMapping("/base/driver/microenterpriseCallback") + public void microenterpriseCallback(@RequestBody JSONObject jsonObject){ + System.err.println(jsonObject.toJSONString()); + } + @ResponseBody @PostMapping("/api/driver/queryBank") // @ServiceLog(name = "获取绑定的银行卡", url = "/api/driver/queryBank") - @ApiOperation(value = "获取绑定的银行卡", tags = {"司机端-个人中心"}, notes = "") + @ApiOperation(value = "获取绑定的银行卡【1.1】", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) @@ -940,7 +992,7 @@ return ResponseWarpper.tokenErr(); } DriverBank driverId = driverBankService.selectOne(new EntityWrapper<DriverBank>().eq("driverId", uid)); - return ResponseWarpper.success(driverId); + return ResponseWarpper.success(null == driverId ? new DriverBank() : driverId); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); @@ -951,7 +1003,7 @@ @ResponseBody @PostMapping("/api/driver/addDriverBank") // @ServiceLog(name = "绑定银行卡", url = "/api/driver/addDriverBank") - @ApiOperation(value = "绑定银行卡", tags = {"司机端-个人中心"}, notes = "") + @ApiOperation(value = "绑定银行卡【1.1】", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "姓名", name = "name", required = true, dataType = "String"), @ApiImplicitParam(value = "身份证号码", name = "IDCode", required = true, dataType = "String"), @@ -977,7 +1029,7 @@ @ResponseBody @PostMapping("/api/driver/delDriverBank") // @ServiceLog(name = "解绑银行卡", url = "/api/driver/delDriverBank") - @ApiOperation(value = "解绑银行卡", tags = {"司机端-个人中心"}, notes = "") + @ApiOperation(value = "解绑银行卡【1.1】", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "银行卡id", name = "id", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") @@ -995,4 +1047,26 @@ return new ResponseWarpper(500, e.getMessage()); } } + + + /** + * 提现分账的回调 + */ + @ResponseBody + @PostMapping("/base/driver/withdrawCashFZCallback") + public void withdrawCashFZCallback(@RequestBody InterfaceResponse interfaceResponse){ + cashWithdrawalService.withdrawCashFZCallback(interfaceResponse); + } + + + + + /** + * 提现确认收货后的结算回调 + */ + @ResponseBody + @PostMapping("/base/driver/withdrawCashCallback") + public void withdrawCashCallback(@RequestBody InterfaceResponse interfaceResponse){ + cashWithdrawalService.withdrawCashCallback(interfaceResponse); + } } -- Gitblit v1.7.1