From 0d8b60c9ed72d996280688a82ffa8eac3afbbff9 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 02 六月 2023 15:28:24 +0800
Subject: [PATCH] 新增加充值和提现功能
---
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java | 241 ++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 220 insertions(+), 21 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 271b146..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,9 +1,17 @@
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;
import com.supersavedriving.driver.modular.system.util.huawei.SMSUtil;
@@ -21,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;
@@ -80,6 +85,12 @@
@Autowired
private IEditionService editionService;
+ @Autowired
+ private IDriverBankService driverBankService;
+
+ @Autowired
+ private IAgentService agentService;
+
@@ -92,7 +103,7 @@
})
public ResponseWarpper<List<OpenCityWarpper>> queryCityList(){
try {
- List<OpenCityWarpper> list = branchOfficeService.queryOpenCity();
+ List<OpenCityWarpper> list = agentService.queryOpenCity();
return ResponseWarpper.success(list);
}catch (Exception e){
e.printStackTrace();
@@ -152,8 +163,9 @@
@ApiImplicitParams({
@ApiImplicitParam(value = "国家代码+86", name = "receiver", required = true, dataType = "string"),
@ApiImplicitParam(value = "电话号码", name = "phone", required = true, dataType = "string"),
+ @ApiImplicitParam(value = "1=登录,2=注册", name = "type", required = true, dataType = "int"),
})
- public ResponseWarpper getVerificationCode(String receiver, String phone){
+ public ResponseWarpper getVerificationCode(String receiver, String phone, Integer type){
if(ToolUtil.isEmpty(receiver)){
return ResponseWarpper.success(ResultUtil.paranErr("receiver"));
}
@@ -161,6 +173,21 @@
return ResponseWarpper.success(ResultUtil.paranErr("phone"));
}
try {
+ if(type == 1){
+ Driver driver = driverService.selectOne(new EntityWrapper<Driver>().eq("phone", phone).ne("status", 3));
+ if(null == driver){
+ return ResponseWarpper.success(ResultUtil.error("账号未注册"));
+ }
+ if(driver.getApprovalStatus() == 1){
+ return ResponseWarpper.success(ResultUtil.error("账号正在审核中"));
+ }
+ if(driver.getApprovalStatus() == 3){
+ return ResponseWarpper.success(ResultUtil.error("账号审核未通过"));
+ }
+ if(driver.getStatus() == 2){
+ return ResponseWarpper.success(ResultUtil.error("账号已冻结"));
+ }
+ }
String numberRandom = UUIDUtil.getNumberRandom(5);
SMSUtil.send(phone, "1d0f0cbe5b214b0d8efa891730eb532a", "[\"" + numberRandom + "\"]");
redisUtil.setStrValue(receiver + phone, numberRandom, 300);//5分钟有效期
@@ -365,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.....")
})
@@ -562,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"));
@@ -580,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();
@@ -649,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
@@ -656,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();
@@ -870,4 +938,135 @@
return new ResponseWarpper(500, e.getMessage());
}
}
+
+
+
+ @ResponseBody
+ @PostMapping("/api/driver/microenterprise")
+// @ServiceLog(name = "绑定商户", url = "/api/driver/microenterprise")
+ @ApiOperation(value = "绑定商户【1.1】", tags = {"司机端-个人中心"}, notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(value = "姓名", name = "name", required = true, dataType = "String"),
+ @ApiImplicitParam(value = "身份证号码", name = "IDCode", required = true, dataType = "String"),
+ @ApiImplicitParam(value = "手机号", name = "phone", required = true, dataType = "String"),
+ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResponseWarpper microenterprise(String name, String IDCode, String phone){
+ try {
+ Integer uid = driverService.getUserByRequest();
+ if(null == uid){
+ return ResponseWarpper.tokenErr();
+ }
+ ResultUtil resultUtil = driverService.microenterprise(uid, name, IDCode, phone, "/base/driver/microenterpriseCallback");
+ return ResponseWarpper.success(resultUtil);
+ }catch (Exception e){
+ e.printStackTrace();
+ return new ResponseWarpper(500, e.getMessage());
+ }
+ }
+
+
+ /**
+ * 注册商户回调
+ * @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 = "获取绑定的银行卡【1.1】", tags = {"司机端-个人中心"}, notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResponseWarpper<DriverBank> queryBank(){
+ try {
+ Integer uid = driverService.getUserByRequest();
+ if(null == uid){
+ return ResponseWarpper.tokenErr();
+ }
+ DriverBank driverId = driverBankService.selectOne(new EntityWrapper<DriverBank>().eq("driverId", uid));
+ return ResponseWarpper.success(null == driverId ? new DriverBank() : driverId);
+ }catch (Exception e){
+ e.printStackTrace();
+ return new ResponseWarpper(500, e.getMessage());
+ }
+ }
+
+
+ @ResponseBody
+ @PostMapping("/api/driver/addDriverBank")
+// @ServiceLog(name = "绑定银行卡", url = "/api/driver/addDriverBank")
+ @ApiOperation(value = "绑定银行卡【1.1】", tags = {"司机端-个人中心"}, notes = "")
+ @ApiImplicitParams({
+ @ApiImplicitParam(value = "姓名", name = "name", required = true, dataType = "String"),
+ @ApiImplicitParam(value = "身份证号码", name = "IDCode", required = true, dataType = "String"),
+ @ApiImplicitParam(value = "手机号", name = "phone", required = true, dataType = "String"),
+ @ApiImplicitParam(value = "银行卡号", name = "bankNumber", required = true, dataType = "String"),
+ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResponseWarpper addDriverBank(String name, String phone, String IDCode, String bankNumber){
+ try {
+ Integer uid = driverService.getUserByRequest();
+ if(null == uid){
+ return ResponseWarpper.tokenErr();
+ }
+ ResultUtil resultUtil = driverBankService.addDriverBank(uid, name, phone, IDCode, bankNumber);
+ return ResponseWarpper.success(resultUtil);
+ }catch (Exception e){
+ e.printStackTrace();
+ return new ResponseWarpper(500, e.getMessage());
+ }
+ }
+
+
+ @ResponseBody
+ @PostMapping("/api/driver/delDriverBank")
+// @ServiceLog(name = "解绑银行卡", url = "/api/driver/delDriverBank")
+ @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.....")
+ })
+ public ResponseWarpper delDriverBank(Integer id){
+ try {
+ Integer uid = driverService.getUserByRequest();
+ if(null == uid){
+ return ResponseWarpper.tokenErr();
+ }
+ ResultUtil resultUtil = driverBankService.delDriverBank(uid, id);
+ return ResponseWarpper.success(resultUtil);
+ }catch (Exception e){
+ e.printStackTrace();
+ 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