From 05e0c51caadfe0940f7fe3756ed2ba8d26f93765 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 02 六月 2023 09:31:33 +0800
Subject: [PATCH] 更新代码
---
driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverServiceImpl.java | 306 +++++++++++++++++++++++++++++++++-----------------
1 files changed, 203 insertions(+), 103 deletions(-)
diff --git a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverServiceImpl.java b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverServiceImpl.java
index 6df6f9a..ec75c25 100644
--- a/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverServiceImpl.java
+++ b/driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverServiceImpl.java
@@ -9,9 +9,7 @@
import com.agentdriving.driver.modular.system.model.*;
import com.agentdriving.driver.modular.system.service.*;
import com.agentdriving.driver.modular.system.util.*;
-import com.agentdriving.driver.modular.system.util.MallBook.model.InterfaceResponse;
-import com.agentdriving.driver.modular.system.util.MallBook.model.Register;
-import com.agentdriving.driver.modular.system.util.MallBook.util.TrhRequest;
+import com.agentdriving.driver.modular.system.util.juhe.OCRUtil;
import com.agentdriving.driver.modular.system.util.mongodb.model.Location;
import com.agentdriving.driver.modular.system.util.rongyun.RongYunUtil;
import com.agentdriving.driver.modular.system.warpper.*;
@@ -19,10 +17,6 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.agentdriving.driver.modular.system.model.*;
-import com.agentdriving.driver.modular.system.service.*;
-import com.agentdriving.driver.modular.system.util.*;
-import com.agentdriving.driver.modular.system.warpper.*;
import org.apache.shiro.authc.SimpleAuthenticationInfo;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
@@ -42,8 +36,12 @@
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.FileInputStream;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -125,6 +123,27 @@
if(null != driver && driver.getApprovalStatus() == 2){
return ResultUtil.error("该手机账号已审核通过,请直接登录。");
}
+// String idcardFront = driverRegisterWarpper.getIdcardFront();
+// MultipartFile file = MultipartFileUtil.fileToMultipartFile(new File(idcardFront));
+// JSONObject certificate = OCRUtil.certificate(2, file);
+// if(null == certificate){
+// return ResultUtil.error("身份证识别失败");
+// }
+// String idcode = certificate.getString("公民身份号码");
+// driver.setIdcard(idcode);
+//
+//
+// String driverLicense = driverRegisterWarpper.getDriverLicense();
+// file = MultipartFileUtil.fileToMultipartFile(new File(driverLicense));
+// certificate = OCRUtil.certificate(5, file);
+// if(null == certificate){
+// return ResultUtil.error("驾驶证识别失败");
+// }
+// System.err.println("驾驶证:" + certificate.toString());
+// String driverLicenseNumber = certificate.getString("驾驶证号码");
+// driver.setDriverLicenseNumber(driverLicenseNumber);
+// driver.setFirstCertificateTime(null);
+
//账号审核拒绝后的处理
if(null != driver && driver.getApprovalStatus() == 3){
@@ -406,7 +425,7 @@
public ResultUtil<List<String>> queryDriverPosition(Integer uid) throws Exception {
DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>().eq("driverId", uid).eq("status", 1));
if(null == driverWork){
- return ResultUtil.error("请先上班");
+ return ResultUtil.error("请先上班", new ArrayList<>());
}
String value = redisUtil.getValue("DRIVER" + uid);
List<String> list = new ArrayList<>();
@@ -483,7 +502,7 @@
@Override
public PromotionWarpper queryPromotionQRCode(Integer uid) throws Exception {
PromotionWarpper promotionWarpper = new PromotionWarpper();
- promotionWarpper.setUrl("http://121.37.15.157/share/driverShare/index.html?inviterId=" + uid);
+ promotionWarpper.setUrl("http://139.9.238.199/share/driverShare/index.html?inviterId=" + uid);
int user = appUserService.selectCount(new EntityWrapper<AppUser>().eq("inviterType", 2).eq("inviterId", uid).eq("status", 1));
int driver = this.selectCount(new EntityWrapper<Driver>().eq("inviterType", 2).eq("inviterId", uid).eq("approvalStatus", 2).eq("status", 1));
promotionWarpper.setTotal(user + driver);
@@ -660,7 +679,7 @@
@Override
- public ResultUtil balanceRecharge(Integer uid, Double amount) throws Exception {
+ public ResultUtil balanceRecharge(Integer uid, Integer type, Double amount) throws Exception {
Driver driver = this.selectById(uid);
//调起微信
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
@@ -676,82 +695,163 @@
rechargeRecord.setAgentId(driver.getAgentId());
rechargeRecordService.insert(rechargeRecord);
-
- ResultUtil weixinpay = payMoneyUtil.weixinpay("余额充值", "", out_trade_no, amount.toString(), "/base/driver/balanceRechargeCallback", "APP");
- new Thread(new Runnable() {
- @Override
- public void run() {
- try {
- int num = 1;
- int wait = 0;
- while (num <= 10){
- int min = 5000;
- wait += (min * num);
- RechargeRecord rechargeRecord1 = rechargeRecordService.selectOne(new EntityWrapper<RechargeRecord>().eq("code", out_trade_no));
- if(rechargeRecord1.getPayStatus() != 1){
- return;
- }
-
- /**
- * SUCCESS--支付成功
- * REFUND--转入退款
- * NOTPAY--未支付
- * CLOSED--已关闭
- * REVOKED--已撤销(刷卡支付)
- * USERPAYING--用户支付中
- * PAYERROR--支付失败(其他原因,如银行返回失败)
- * ACCEPT--已接收,等待扣款
- */
- ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(out_trade_no, "");
- if(resultUtil.getCode() == 200){
- Map<String, String> map = resultUtil.getData();
- String trade_type = map.get("trade_type");
- String trade_state = map.get("trade_state");
- String transaction_id = map.get("transaction_id");
- if("REFUND".equals(trade_state) || "NOTPAY".equals(trade_state) || "CLOSED".equals(trade_state) || "REVOKED".equals(trade_state) || "PAYERROR".equals(trade_state)){
- rechargeRecordService.deleteById(rechargeRecord1.getId());
+ if(type == 1){
+ ResultUtil weixinpay = payMoneyUtil.weixinpay("余额充值", "", out_trade_no, amount.toString(), "/base/driver/balanceRechargeCallback", "APP");
+ if(weixinpay.getCode() != 200){
+ return weixinpay;
+ }
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ int num = 1;
+ int wait = 0;
+ while (num <= 10){
+ int min = 5000;
+ wait += (min * num);
+ RechargeRecord rechargeRecord1 = rechargeRecordService.selectOne(new EntityWrapper<RechargeRecord>().eq("code", out_trade_no));
+ if(rechargeRecord1.getPayStatus() != 1){
return;
}
- if("SUCCESS".equals(trade_state)){
- Driver driver1 = DriverServiceImpl.this.selectById(uid);
- AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
- accountChangeDetail.setUserType(2);
- accountChangeDetail.setUserId(uid);
- accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
- accountChangeDetail.setChangeType(3);
- accountChangeDetail.setType(1);
- accountChangeDetail.setCreateTime(new Date());
- accountChangeDetail.setExplain("余额充值");
- accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission());
- driver1.setBalance(driver1.getBalance() + amount);
- accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission());
- DriverServiceImpl.this.updateById(driver1);
- accountChangeDetailService.saveData(accountChangeDetail);
- rechargeRecord1.setPayTime(new Date());
- rechargeRecord1.setPayStatus(2);
- rechargeRecord1.setOrderNumber(transaction_id);
- rechargeRecordService.updateById(rechargeRecord1);
- return;
- }
- if("USERPAYING".equals(trade_state) || "ACCEPT".equals(trade_state)){
+ /**
+ * SUCCESS--支付成功
+ * REFUND--转入退款
+ * NOTPAY--未支付
+ * CLOSED--已关闭
+ * REVOKED--已撤销(刷卡支付)
+ * USERPAYING--用户支付中
+ * PAYERROR--支付失败(其他原因,如银行返回失败)
+ * ACCEPT--已接收,等待扣款
+ */
+ ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(out_trade_no, "");
+ if(resultUtil.getCode() == 200){
+ Map<String, String> map = resultUtil.getData();
+ String trade_type = map.get("trade_type");
+ String trade_state = map.get("trade_state");
+ String transaction_id = map.get("transaction_id");
+ if("REFUND".equals(trade_state) || "NOTPAY".equals(trade_state) || "CLOSED".equals(trade_state) || "REVOKED".equals(trade_state) || "PAYERROR".equals(trade_state)){
+ rechargeRecordService.deleteById(rechargeRecord1.getId());
+ return;
+ }
+ if("SUCCESS".equals(trade_state)){
+ Driver driver1 = DriverServiceImpl.this.selectById(uid);
+ AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
+ accountChangeDetail.setUserType(2);
+ accountChangeDetail.setUserId(uid);
+ accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
+ accountChangeDetail.setChangeType(3);
+ accountChangeDetail.setType(1);
+ accountChangeDetail.setCreateTime(new Date());
+ accountChangeDetail.setExplain("余额充值");
+ accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission());
+ driver1.setBalance(driver1.getBalance() + amount);
+ accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission());
+ DriverServiceImpl.this.updateById(driver1);
+ accountChangeDetailService.saveData(accountChangeDetail);
+
+ rechargeRecord1.setPayTime(new Date());
+ rechargeRecord1.setPayStatus(2);
+ rechargeRecord1.setOrderNumber(transaction_id);
+ rechargeRecordService.updateById(rechargeRecord1);
+ return;
+ }
+ if("USERPAYING".equals(trade_state) || "ACCEPT".equals(trade_state)){
+ Thread.sleep(wait);
+ num++;
+ }
+ }else{
Thread.sleep(wait);
num++;
}
- }else{
- Thread.sleep(wait);
- num++;
+ if(10 == num){
+ rechargeRecordService.deleteById(rechargeRecord1.getId());
+ }
}
- if(10 == num){
- rechargeRecordService.deleteById(rechargeRecord1.getId());
- }
+ }catch (Exception e){
+ e.printStackTrace();
}
- }catch (Exception e){
- e.printStackTrace();
}
+ }).start();
+ return weixinpay;
+ }
+ if(type == 2){
+ ResultUtil<String> alipay = payMoneyUtil.alipay("余额充值", "余额充值", out_trade_no, amount.toString(), "/base/driver/balanceRechargeCallbackAli");
+ if(alipay.getCode() != 200){
+ return alipay;
}
- }).start();
- return weixinpay;
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ int num = 1;
+ int wait = 0;
+ while (num <= 10){
+ int min = 5000;
+ wait += (min * num);
+ RechargeRecord rechargeRecord1 = rechargeRecordService.selectOne(new EntityWrapper<RechargeRecord>().eq("code", out_trade_no));
+ if(rechargeRecord1.getPayStatus() != 1){
+ return;
+ }
+
+ /**
+ * 交易状态:
+ * WAIT_BUYER_PAY(交易创建,等待买家付款)、
+ * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、
+ * TRADE_SUCCESS(交易支付成功)、
+ * TRADE_FINISHED(交易结束,不可退款)
+ */
+ ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(out_trade_no);
+ if(resultUtil.getCode() == 200){
+ Map<String, String> map = resultUtil.getData();
+ String tradeStatus = map.get("tradeStatus");
+ String tradeNo = map.get("tradeNo");
+ if("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)){
+ rechargeRecordService.deleteById(rechargeRecord1.getId());
+ return;
+ }
+ if("TRADE_SUCCESS".equals(tradeStatus)){
+ Driver driver1 = DriverServiceImpl.this.selectById(uid);
+ AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
+ accountChangeDetail.setUserType(2);
+ accountChangeDetail.setUserId(uid);
+ accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
+ accountChangeDetail.setChangeType(3);
+ accountChangeDetail.setType(1);
+ accountChangeDetail.setCreateTime(new Date());
+ accountChangeDetail.setExplain("余额充值");
+ accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission());
+ driver1.setBalance(driver1.getBalance() + amount);
+ accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission());
+ DriverServiceImpl.this.updateById(driver1);
+ accountChangeDetailService.saveData(accountChangeDetail);
+
+ rechargeRecord1.setPayTime(new Date());
+ rechargeRecord1.setPayStatus(2);
+ rechargeRecord1.setOrderNumber(tradeNo);
+ rechargeRecordService.updateById(rechargeRecord1);
+ return;
+ }
+ if("WAIT_BUYER_PAY".equals(tradeStatus)){
+ Thread.sleep(wait);
+ num++;
+ }
+ }else{
+ Thread.sleep(wait);
+ num++;
+ }
+ if(10 == num){
+ rechargeRecordService.deleteById(rechargeRecord1.getId());
+ }
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ return alipay;
+ }
+ return ResultUtil.success();
}
@@ -873,33 +973,33 @@
*/
@Override
public ResultUtil microenterprise(Integer uid, String name, String number, String phone) throws Exception {
- Driver driver = this.selectById(uid);
- Register registerVO = new Register();
- registerVO.setMerUserId("driver_" + uid);
- registerVO.setPhone(phone);
- registerVO.setUserType("0");
- registerVO.setUserName(name);
- registerVO.setCertId(number);
- registerVO.setNotifyUrl("");
- TrhRequest<Register> request = new TrhRequest();
- InterfaceResponse execute = request.execute(registerVO, Register.SERVICE_CODE);
- if(!"0000".equals(execute.getResult())){
- return ResultUtil.error(execute.getMsg());
- }
- JSONObject jsonObject = JSON.parseObject(execute.getResult());
- String status = jsonObject.getString("status");
- if("2".equals(status)){
- return ResultUtil.error("失败");
- }
- if("0".equals(status)){
- return ResultUtil.error("处理中");
- }
- String userId = jsonObject.getString("userId");
- driver.setMerchantNumber(userId);
- driver.setMerchantIDCode(number);
- driver.setMerchantName(name);
- driver.setMerchantPhone(phone);
- this.updateById(driver);
+// Driver driver = this.selectById(uid);
+// Register registerVO = new Register();
+// registerVO.setMerUserId("driver_" + uid);
+// registerVO.setPhone(phone);
+// registerVO.setUserType("0");
+// registerVO.setUserName(name);
+// registerVO.setCertId(number);
+// registerVO.setNotifyUrl("");
+// TrhRequest<Register> request = new TrhRequest();
+// InterfaceResponse execute = request.execute(registerVO, Register.SERVICE_CODE);
+// if(!"0000".equals(execute.getResult())){
+// return ResultUtil.error(execute.getMsg());
+// }
+// JSONObject jsonObject = JSON.parseObject(execute.getResult());
+// String status = jsonObject.getString("status");
+// if("2".equals(status)){
+// return ResultUtil.error("失败");
+// }
+// if("0".equals(status)){
+// return ResultUtil.error("处理中");
+// }
+// String userId = jsonObject.getString("userId");
+// driver.setMerchantNumber(userId);
+// driver.setMerchantIDCode(number);
+// driver.setMerchantName(name);
+// driver.setMerchantPhone(phone);
+// this.updateById(driver);
return ResultUtil.success();
}
}
--
Gitblit v1.7.1