From f3672f3dbcb943bf2d21047bb0c474502bc29930 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期二, 20 六月 2023 17:12:09 +0800 Subject: [PATCH] 修改客户反馈bug --- driver/guns-admin/src/main/java/com/agentdriving/driver/modular/system/service/impl/DriverServiceImpl.java | 268 +++++++++++++++++++++++++++++++++++------------------ 1 files changed, 178 insertions(+), 90 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 8779229..400320c 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 @@ -123,27 +123,6 @@ 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){ @@ -165,6 +144,29 @@ } driver.setCreateTime(new Date()); this.insert(driver); + + //司机邀请注册奖励 + if(null != driver.getInviterId()){ + Driver driver1 = this.selectById(driver.getInviterId()); + SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 4)); + if(null != systemConfig){ + Integer num7 = JSON.parseObject(systemConfig.getContent()).getInteger("num7"); + if(num7 > 0){ + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); + accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); + accountChangeDetail.setUserType(2); + accountChangeDetail.setUserId(driver1.getId()); + accountChangeDetail.setType(2); + accountChangeDetail.setChangeType(5); + accountChangeDetail.setOldData(driver1.getIntegral().doubleValue()); + driver1.setIntegral(driver1.getIntegral() + num7); + accountChangeDetail.setNewData(driver1.getIntegral().doubleValue()); + accountChangeDetail.setExplain("邀请司机注册奖励"); + accountChangeDetailService.saveData(accountChangeDetail); + this.updateById(driver1); + } + } + } } return ResultUtil.success(); } @@ -177,13 +179,18 @@ * @return */ public Driver setDriverParamete(Driver driver, DriverRegisterWarpper driverRegisterWarpper) throws Exception{ + driver.setName(driverRegisterWarpper.getName()); + driver.setSex(driverRegisterWarpper.getSex()); driver.setAvatar(driverRegisterWarpper.getAvatar()); driver.setPhone(driverRegisterWarpper.getPhone()); driver.setEmergencyContact(driverRegisterWarpper.getEmergencyContact()); driver.setEmergencyPhone(driverRegisterWarpper.getEmergencyPhone()); + driver.setIdcard(driverRegisterWarpper.getIdcard()); driver.setIdcardBack(driverRegisterWarpper.getIdcardBack()); driver.setIdcardFront(driverRegisterWarpper.getIdcardFront()); + driver.setDriverLicenseNumber(driverRegisterWarpper.getDriverLicenseNumber()); driver.setDriverLicense(driverRegisterWarpper.getDriverLicense()); + driver.setFirstCertificateTime(driverRegisterWarpper.getFirstCertificateTime()); //注册地 String code = driverRegisterWarpper.getCode(); BranchOffice branchOffice = branchOfficeService.selectOne(new EntityWrapper<BranchOffice>().eq("districtCode", code).eq("status", 1)); @@ -425,7 +432,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<>(); @@ -502,7 +509,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); @@ -679,7 +686,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"); @@ -695,82 +702,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() != 10000){ + 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() != 10000){ + 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(); } -- Gitblit v1.7.1