driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java
@@ -492,8 +492,8 @@ @ResponseBody @PostMapping("/api/driver/queryCommissionList") // @ServiceLog(name = "获取佣金记录", url = "/api/driver/queryCommissionList") @ApiOperation(value = "获取佣金记录", tags = {"司机端-个人中心"}, notes = "") // @ServiceLog(name = "获取收入记录", url = "/api/driver/queryCommissionList") @ApiOperation(value = "获取收入记录", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "日期", name = "time", required = true, dataType = "string"), @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), @@ -623,7 +623,7 @@ @ApiOperation(value = "获取司机钱包明细", tags = {"司机端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "日期", name = "time", required = true, dataType = "string"), @ApiImplicitParam(value = "类型(1=收入,3=充值,4=支出,7=优惠券,8=保险)", name = "type", required = true, dataType = "int"), @ApiImplicitParam(value = "类型(3=充值,8=保险,9=订单信息费)", name = "type", required = true, dataType = "int"), @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), @ApiImplicitParam(value = "页条数", name = "pageSize", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/auth/AuthIntercepter.java
@@ -25,7 +25,7 @@ String appid = req.getParameter("appid"); String sign = req.getParameter("sign"); ResultUtil resultUtil = authService.checkSyncAuth(appid, sign, req); if (resultUtil.getCode() != 200) { if (resultUtil.getCode() != 10000) { res.setStatus(HttpStatus.OK.value()); res.setHeader("Content-type", "text/html;charset=UTF-8"); res.getWriter().print(JSON.toJSONString(resultUtil));//Res.Failure("req timeout, please try again") driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/AccountChangeDetailMapper.xml
@@ -43,7 +43,7 @@ UNIX_TIMESTAMP(createTime) * 1000 as createTime, (newData - oldData) as money, newData as balance from t_account_change_detail where changeType = 5 and userType = 2 and userId = #{driverId} from t_account_change_detail where changeType not in (3, 4, 8, 9) and userType = 2 and `type` = 1 and userId = #{driverId} <if test="null != time and '' != time"> and DATE_FORMAT(createTime, '%Y年%m月') = #{time} </if> @@ -57,7 +57,7 @@ from ( select (newData - oldData) as money from t_account_change_detail where changeType = 5 and userType = 2 and userId = #{driverId} from t_account_change_detail where changeType not in (3, 4, 8, 9) and userType = 2 and `type` = 1 and userId = #{driverId} <if test="null != time and '' != time"> and DATE_FORMAT(createTime, '%Y年%m月') = #{time} </if> @@ -72,7 +72,7 @@ UNIX_TIMESTAMP(createTime) * 1000 as createTime, (newData - oldData) as amount, newData as balance from t_account_change_detail where userType = 2 and userId = #{driverId} and changeType in (1, 3, 4, 7, 8) from t_account_change_detail where userType = 2 and userId = #{driverId} and changeType in (3, 8, 9) <if test="null != time and '' != time"> and DATE_FORMAT(createTime, '%Y年%m月') = #{time} </if> driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IOrderService.java
@@ -206,4 +206,8 @@ ResultUtil fengzhang(Integer userType, Integer id, String merchantNumber, Long orderId, String merOrderId, Double amount, Integer sourceType); void saveRevenue(Order order) throws Exception; } driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java
@@ -134,17 +134,6 @@ double d = num1.doubleValue(); if(backgroundBalance > 0 && backgroundBalance < d){ AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); accountChangeDetail.setUserType(2); accountChangeDetail.setUserId(driver.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(8); accountChangeDetail.setOldData(driver.getBackgroundBalance()); accountChangeDetail.setNewData(0D); accountChangeDetail.setExplain("收取保险费"); accountChangeDetail.setCreateTime(new Date()); this.insert(accountChangeDetail); d -= backgroundBalance; driver.setBackgroundBalance(0D); } @@ -155,18 +144,15 @@ accountChangeDetail.setUserId(driver.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(8); accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance()); driver.setBackgroundBalance(driver.getBackgroundBalance() - d); accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance()); accountChangeDetail.setExplain("收取保险费"); accountChangeDetail.setCreateTime(new Date()); this.insert(accountChangeDetail); d = 0; } if(d > 0){ if(balance > 0 && balance < d){ continue; } if(balance > 0 && balance >= d){ AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); @@ -174,9 +160,9 @@ accountChangeDetail.setUserId(driver.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(8); accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setOldData(all); driver.setBalance(driver.getBalance() - d); accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance()); accountChangeDetail.setExplain("收取保险费"); accountChangeDetail.setCreateTime(new Date()); this.insert(accountChangeDetail); driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/CashWithdrawalServiceImpl.java
@@ -89,13 +89,15 @@ accountChangeDetail.setUserId(driver.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(type == 1 ? 4 : 6); accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); if(type == 1){ accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance()); driver.setBalance(driver.getBalance() - money); accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance()); }else{ accountChangeDetail.setOldData(driver.getCommission() + driver.getCouponBalance()); driver.setCommission(driver.getCommission() - money); accountChangeDetail.setNewData(driver.getCouponBalance() + driver.getCommission()); } accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setExplain(type == 1 ? "账户余额提现" : "佣金余额提现"); driverService.updateById(driver); accountChangeDetailService.saveData(accountChangeDetail); @@ -103,22 +105,38 @@ if(type == 1){//余额提现,调用分账接口 -->确认收货--->提现 fenzhang(driver, money, cashWithdrawal, 1); }else{//佣金提现,调用充值接口数据进行分账 fenzhang(driver, money, cashWithdrawal, 2); }else{//佣金提现,直接提现到银行卡 Withdraw withdraw = new Withdraw(); withdraw.setUserId(driver.getMerchantNumber()); withdraw.setAmount(String.valueOf(Double.valueOf(money * 100).intValue())); withdraw.setOrderName("账户余额提现"); withdraw.setRemark("账户余额提现"); withdraw.setNotifyUrl(callbackPath + "/base/driver/withdrawCashCallback"); withdraw.setParameter1(cashWithdrawal.getId().toString()); TrhRequest<Withdraw> request1 = new TrhRequest(); InterfaceResponse execute = request1.execute(withdraw, Withdraw.SERVICE_CODE);//结算(提现) if("0000".equals(execute.getCode())){ JSONObject jsonObject1 = JSON.parseObject(execute.getResult()); String merOrderId1 = jsonObject1.getString("merOrderId"); Integer status = jsonObject1.getInteger("status");//0:待处理;1:成功;2:失败 if(1 == status){ cashWithdrawal.setOrderNumber(merOrderId1); cashWithdrawal.setState(2); this.updateById(cashWithdrawal); } if(2 == status){ System.err.println("结算接口异常【提现】:" + jsonObject1.getString("statusMsg")); } }else{ System.err.println("结算接口异常【提现】:" + execute.getMsg()); } } // SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); // String outDetailNo = sdf.format(new Date()) + cashWithdrawal.getId(); // // String s = payMoneyUtil.weixinTransferMoney(outDetailNo, money, driver.getOpenid(), driver.getName(), "【超省新代驾】提现付款!"); // if(ToolUtil.isEmpty(s)){ // return ResultUtil.error("提现异常,请联系管理员"); // } // cashWithdrawal.setState(2); // cashWithdrawal.setOrderNumber(s); // this.updateById(cashWithdrawal); return ResultUtil.success(); } /** @@ -161,7 +179,7 @@ List<PamentOrderUser> splitList = new ArrayList<>(); PamentOrderUser pamentOrderUser = new PamentOrderUser(); pamentOrderUser.setSplitUserId(driver.getMerchantNumber()); pamentOrderUser.setSplitAmount(amount.toString()); pamentOrderUser.setSplitAmount(String.valueOf(Double.valueOf(amount * 100).intValue())); pamentOrderUser.setSplitType("1"); splitList.add(pamentOrderUser); complete.setSplitList(splitList); @@ -213,7 +231,7 @@ List<PamentOrderUser> splitList = new ArrayList<>(); PamentOrderUser pamentOrderUser = new PamentOrderUser(); pamentOrderUser.setSplitUserId(driver.getMerchantNumber()); pamentOrderUser.setSplitAmount(surplusDividedAmount.toString()); pamentOrderUser.setSplitAmount(String.valueOf(Double.valueOf(surplusDividedAmount * 100).intValue())); pamentOrderUser.setSplitType("1"); splitList.add(pamentOrderUser); complete.setSplitList(splitList); @@ -263,11 +281,11 @@ Receive receive = new Receive(); receive.setOriginalMerOrderId(rechargeRecord.getOrderNumber()); receive.setAsynMerOrderId(divisionRecord.getMerOrderId()); receive.setRcvAmount(divisionRecord.getAmount().toString()); receive.setRcvAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue())); List<ReceiveUser> splitList = new ArrayList<>(); ReceiveUser receiveUser = new ReceiveUser(); receiveUser.setSplitUserId(driver.getMerchantNumber()); receiveUser.setRcvSplitAmount(divisionRecord.getAmount().toString()); receiveUser.setRcvSplitAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue())); splitList.add(receiveUser); receive.setSplitList(splitList); TrhRequest<Receive> request = new TrhRequest(); @@ -278,7 +296,7 @@ if(ToolUtil.isNotEmpty(merOrderId)){ Withdraw withdraw = new Withdraw(); withdraw.setUserId(driver.getMerchantNumber()); withdraw.setAmount(divisionRecord.getAmount().toString()); withdraw.setAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue())); withdraw.setOrderName("账户余额提现"); withdraw.setRemark("账户余额提现"); withdraw.setNotifyUrl(callbackPath + "/base/driver/withdrawCashCallback"); driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java
@@ -156,6 +156,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(); } @@ -175,6 +198,10 @@ driver.setIdcardBack(driverRegisterWarpper.getIdcardBack()); driver.setIdcardFront(driverRegisterWarpper.getIdcardFront()); driver.setDriverLicense(driverRegisterWarpper.getDriverLicense()); if(ToolUtil.isNotEmpty(driverRegisterWarpper.getFirstCertificateTime())){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); driver.setFirstCertificateTime(sdf.parse(driverRegisterWarpper.getFirstCertificateTime())); } //注册地 String code = driverRegisterWarpper.getCode(); BranchOffice branchOffice = branchOfficeService.selectOne(new EntityWrapper<BranchOffice>().eq("districtCode", code).eq("status", 1)); @@ -574,7 +601,8 @@ DriverInfoWarpper driverInfo = new DriverInfoWarpper(); BeanUtils.copyProperties(driver, driverInfo); driverInfo.setWithdrawBalance(driver.getBalance()); driverInfo.setBalance(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); driverInfo.setBalance(driver.getBalance() + driver.getBackgroundBalance());//司机充值+平台充值 driverInfo.setCommission(driver.getCommission() + driver.getCouponBalance());//司机订单收入+司机佣金收入+司机优惠券收入+司机折扣收入 YouTuiDriver youTuiDriver = youTuiDriverService.selectOne(new EntityWrapper<YouTuiDriver>().eq("driverId", uid) .eq("state", 2).last(" and failureTime > now() order by failureTime limit 0, 1")); if(null != youTuiDriver){ @@ -704,7 +732,7 @@ paymentOrderGood.setGoodsName("充值"); goodsDetail.add(paymentOrderGood); paymentOrder.setGoodsDetail(goodsDetail); paymentOrder.setFrontUrl("http://www.baidu.com");//前端回调地址 paymentOrder.setFrontUrl(callbackPath + "/base/driver/balanceRechargeCallback");//前端回调地址 paymentOrder.setNotifyUrl(callbackPath + "/base/driver/balanceRechargeCallback"); paymentOrder.setParameter1(out_trade_no); @@ -757,9 +785,9 @@ accountChangeDetail.setType(1); accountChangeDetail.setCreateTime(new Date()); accountChangeDetail.setExplain("账户充值"); accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance()); driver1.setBalance(driver1.getBalance() + rechargeRecord1.getAmount()); accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance()); DriverServiceImpl.this.updateById(driver1); accountChangeDetailService.saveData(accountChangeDetail); @@ -830,9 +858,9 @@ accountChangeDetail.setType(1); accountChangeDetail.setCreateTime(new Date()); accountChangeDetail.setExplain("账户充值"); accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance()); driver1.setBalance(driver1.getBalance() + rechargeRecord1.getAmount()); accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance()); this.updateById(driver1); accountChangeDetailService.saveData(accountChangeDetail); driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
@@ -277,8 +277,8 @@ order.setStartDistance(distance);//起步里程 order.setStartPrice(num4);//起步价 }else{ BigDecimal subtract = new BigDecimal(distance).subtract(new BigDecimal(num3));//超出起步里程 BigDecimal divide = subtract.divide(new BigDecimal(num5), new MathContext(2, RoundingMode.HALF_EVEN)); BigDecimal subtract = new BigDecimal(distance).subtract(new BigDecimal(num3)).setScale(2, BigDecimal.ROUND_HALF_EVEN);//超出起步里程 BigDecimal divide = subtract.divide(new BigDecimal(num5), 2, BigDecimal.ROUND_HALF_EVEN); BigDecimal multiply = divide.multiply(new BigDecimal(num6)); order.setStartDistance(num3);//起步里程 order.setStartPrice(num4);//起步价 @@ -292,8 +292,8 @@ } //计算长途里程超出的部分 if(distance.compareTo(num8) > 0){ BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num8)); BigDecimal divide1 = subtract1.divide(new BigDecimal(num10), new MathContext(2, RoundingMode.HALF_EVEN)); BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num8)).setScale(2, BigDecimal.ROUND_HALF_EVEN); BigDecimal divide1 = subtract1.divide(new BigDecimal(num10), 2, BigDecimal.ROUND_HALF_EVEN); BigDecimal multiply1 = divide1.multiply(new BigDecimal(num11)); order.setOverLongDistance(subtract1.doubleValue());//超出长途里程 order.setOverLongDistancePrice(multiply1.doubleValue());//超出长途里程费 @@ -451,6 +451,10 @@ if(ToolUtil.isEmpty(value)){ continue; } DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>().eq("driverId", youTuiDriver.getDriverId()).eq("status", 1)); if(null == driverWork){ continue; } Map<String, Double> distance = GeodesyUtil.getDistance(value, order.getStartLng() + "," + order.getStartLat()); Double wgs84 = distance.get("WGS84"); if(d == null || d.compareTo(wgs84) > 0){ @@ -492,6 +496,10 @@ Double score = null; Double d = null; for (Driver driver1 : drivers) { DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>().eq("driverId", driver1.getId()).eq("status", 1)); if(null == driverWork){ continue; } if(integral == null || integral.compareTo(driver1.getIntegral()) < 0){//积分大 integral = driver1.getIntegral(); score = driver1.getScore(); @@ -859,6 +867,8 @@ accountChangeDetail.setUserType(2); accountChangeDetail.setUserId(order.getDriverId()); accountChangeDetail.setType(2); accountChangeDetail.setChangeType(5); accountChangeDetail.setOrderId(order.getId()); accountChangeDetail.setOldData(driver.getIntegral().doubleValue()); driver.setIntegral(driver.getIntegral() + num5); accountChangeDetail.setNewData(driver.getIntegral().doubleValue()); @@ -866,52 +876,30 @@ accountChangeDetailService.saveData(accountChangeDetail); } //恶劣天气完成订单奖励 Integer num8 = JSON.parseObject(systemConfig.getContent()).getInteger("num8"); if(num8 > 0){ AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); accountChangeDetail.setUserType(2); accountChangeDetail.setUserId(order.getDriverId()); accountChangeDetail.setType(2); accountChangeDetail.setOldData(driver.getIntegral().doubleValue()); driver.setIntegral(driver.getIntegral() + num8); accountChangeDetail.setNewData(driver.getIntegral().doubleValue()); accountChangeDetail.setExplain("恶劣天气完成订单奖励"); accountChangeDetailService.saveData(accountChangeDetail); String city = ""; District geocode = MapUtil.geocode(order.getEndLng(), order.getEndLat()); if(null != geocode){ WeatherCity weatherCity = weatherCityService.selectOne(new EntityWrapper<WeatherCity>() .where("'" + geocode.getCity() + "' like CONCAT('%', city, '%') and '" + geocode.getDistrict() + "' like CONCAT('%', district, '%') ")); city = null != weatherCity ? weatherCity.getId().toString() : ""; } driverService.updateById(driver); if(null == order.getUserId()){ return; } //推荐用户首单完成奖励 Integer num4 = JSON.parseObject(systemConfig.getContent()).getInteger("num4"); if(num4 > 0){ List<Integer> state = Arrays.asList(105); int count = this.selectCount(new EntityWrapper<Order>().eq("userId", order.getUserId()).eq("status", 1).in("state", state)); if(count > 1){ return; } AppUser appUser = appUserService.selectById(order.getUserId()); if(null != appUser && null != appUser.getInviterType()){ if(appUser.getInviterType() == 1){ return; } Driver driver1 = driverService.selectById(appUser.getInviterId()); boolean badWeather = WeatherUtil.isBadWeather(city); if(badWeather){ Integer num8 = JSON.parseObject(systemConfig.getContent()).getInteger("num8"); if(num8 > 0){ AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); accountChangeDetail.setUserType(2); accountChangeDetail.setUserId(driver1.getId()); accountChangeDetail.setUserId(order.getDriverId()); accountChangeDetail.setType(2); accountChangeDetail.setOldData(driver1.getIntegral().doubleValue()); driver1.setIntegral(driver1.getIntegral() + num4); accountChangeDetail.setNewData(driver1.getIntegral().doubleValue()); accountChangeDetail.setExplain("推荐用户完成首单奖励"); accountChangeDetail.setOldData(driver.getIntegral().doubleValue()); driver.setIntegral(driver.getIntegral() + num8); accountChangeDetail.setNewData(driver.getIntegral().doubleValue()); accountChangeDetail.setExplain("恶劣天气完成订单奖励"); accountChangeDetailService.saveData(accountChangeDetail); driverService.updateById(driver1); } } driverService.updateById(driver); } } @@ -1193,13 +1181,13 @@ accountChangeDetail.setUserType(2); accountChangeDetail.setUserId(order.getDriverId()); accountChangeDetail.setCreateTime(new Date()); accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setOldData(driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(7); accountChangeDetail.setOrderId(order.getId()); accountChangeDetail.setExplain("优惠券收入"); driver.setCommission(driver.getCommission() + coupon.getCouponPreferentialAmount()); accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setNewData(driver.getCouponBalance() + driver.getCommission()); driverService.updateById(driver); accountChangeDetailService.insert(accountChangeDetail); @@ -1238,13 +1226,13 @@ accountChangeDetail.setUserType(2); accountChangeDetail.setUserId(order.getDriverId()); accountChangeDetail.setCreateTime(new Date()); accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setOldData(driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(7); accountChangeDetail.setOrderId(order.getId()); accountChangeDetail.setExplain("折扣优惠收入"); driver.setCommission(driver.getCommission() + order.getDiscountAmount()); accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setNewData(driver.getCouponBalance() + driver.getCommission()); driverService.updateById(driver); accountChangeDetailService.insert(accountChangeDetail); @@ -1304,7 +1292,7 @@ Transfer transfer = new Transfer(); transfer.setDepositMerOrderId(merOrderId); transfer.setToUserId(toUserId); transfer.setAmount(String.valueOf(Double.valueOf(amount * 100))); transfer.setAmount(String.valueOf(Double.valueOf(amount * 100).intValue())); transfer.setOrderName("补贴"); transfer.setNotifyUrl(notifyUrl); transfer.setParameter1(id.toString()); @@ -1326,7 +1314,7 @@ /** * 计算抽成和分佣 * 计算线下收款的抽成和分佣 * @param order */ public void saveRevenue(Order order) throws Exception{ @@ -1334,41 +1322,67 @@ //司机分佣和司机推荐用户首单奖励都在平台的抽佣中扣除,剩余的为平台抽佣。 Driver driver = driverService.selectById(order.getDriverId()); AppUser appUser = appUserService.selectById(order.getUserId()); //司机推荐首单收入 List<Integer> state = Arrays.asList(107, 108, 109); int count = this.selectCount(new EntityWrapper<Order>().eq("userId", order.getUserId()).eq("status", 1).in("state", state)); if(null != appUser.getInviterType() && appUser.getInviterType() == 2 && count == 1){ Driver driver1 = driverService.selectById(appUser.getInviterId()); //首单积分奖励 SystemConfig systemConfig1 = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 4)); JSONObject jsonObject2 = JSON.parseObject(systemConfig1.getContent()); Integer num4 = jsonObject2.getInteger("num4"); 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.setOrderId(order.getId()); accountChangeDetail.setOldData(driver1.getIntegral().doubleValue()); accountChangeDetail.setExplain("邀请用户首单积分奖励"); accountChangeDetail.setCreateTime(new Date()); driver1.setIntegral(driver1.getIntegral() + num4); accountChangeDetail.setNewData(driver1.getIntegral().doubleValue()); accountChangeDetailService.insert(accountChangeDetail); driverService.updateById(driver1); } Double payMoney = order.getPayMoney(); SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 3)); Double n = 0D; if(null != systemConfig){ JSONObject jsonObject = JSON.parseObject(systemConfig.getContent()); Double num2 = jsonObject.getDouble("num2"); Double num3 = jsonObject.getDouble("num3"); n = num3; if(order.getPayMoney() >= num2){ payMoney = payMoney - num3;//司机收入 if(order.getOrderMoney() >= num2){//订单金额大于num2才有抽佣金 payMoney = payMoney - num3; //有分佣的情况,分佣的金额从司机充值金额中扣除转给平台,再由平台转账给各个分佣对象 SystemConfig systemConfig1 = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 2)); if(null != systemConfig1){ JSONObject jsonObject1 = JSON.parseObject(systemConfig1.getContent()); //司机推荐首单收入 List<Integer> state = Arrays.asList(108, 109); int count = this.selectCount(new EntityWrapper<Order>().eq("userId", appUser.getId()).eq("status", 1).in("state", state)); if(null != appUser.getInviterType() && appUser.getInviterType() == 2 && count == 1){ Double num1 = jsonObject1.getDouble("num1"); num1 = (num3 >= num1 ? num1 : num3); if(num1 > 0){ Driver driver1 = driverService.selectById(appUser.getInviterId()); //首单积分奖励 AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); accountChangeDetail.setUserType(2); accountChangeDetail.setUserId(driver1.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(5); accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setExplain("订单分佣收入"); accountChangeDetail.setOldData(driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setExplain("邀请用户首单奖励"); accountChangeDetail.setCreateTime(new Date()); driver1.setCommission(driver1.getCommission() + num1); accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); driverService.updateById(driver1); accountChangeDetail.setNewData(driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetailService.saveData(accountChangeDetail); driverService.updateById(driver1); Revenue revenue = new Revenue(); revenue.setType(2); @@ -1407,7 +1421,7 @@ } //开始处理层级抽佣 if(null != driver.getInviterType() && driver.getInviterType() == 2){ if(num3 > 0 && null != driver.getInviterType() && driver.getInviterType() == 2){ Driver driver1 = driverService.selectById(driver.getInviterId());//一级司机 if(null != driver1 && null != driver1.getInviterType() && driver1.getInviterType() == 2){ Driver driver2 = driverService.selectById(driver1.getInviterId());//二级司机 @@ -1433,11 +1447,11 @@ accountChangeDetail.setUserId(driver1.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(5); accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setOldData(driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setExplain("订单分佣收入"); accountChangeDetail.setCreateTime(new Date()); driver1.setCommission(driver1.getCommission() + num5); accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setNewData(driver1.getCouponBalance() + driver1.getCommission()); driverService.updateById(driver1); accountChangeDetailService.saveData(accountChangeDetail); @@ -1483,11 +1497,11 @@ accountChangeDetail.setUserId(driver2.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(5); accountChangeDetail.setOldData(driver2.getBalance() + driver2.getBackgroundBalance() + driver2.getCouponBalance() + driver2.getCommission()); accountChangeDetail.setOldData(driver2.getCouponBalance() + driver2.getCommission()); accountChangeDetail.setExplain("订单分佣收入"); accountChangeDetail.setCreateTime(new Date()); driver2.setCommission(driver2.getCommission() + num6); accountChangeDetail.setNewData(driver2.getBalance() + driver2.getBackgroundBalance() + driver2.getCouponBalance() + driver2.getCommission()); accountChangeDetail.setNewData(driver2.getCouponBalance() + driver2.getCommission()); driverService.updateById(driver2); accountChangeDetailService.saveData(accountChangeDetail); @@ -1533,11 +1547,11 @@ accountChangeDetail.setUserId(driver3.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(5); accountChangeDetail.setOldData(driver3.getBalance() + driver3.getBackgroundBalance() + driver3.getCouponBalance() + driver3.getCommission()); accountChangeDetail.setOldData(driver3.getCouponBalance() + driver3.getCommission()); accountChangeDetail.setExplain("订单分佣收入"); accountChangeDetail.setCreateTime(new Date()); driver3.setCommission(driver3.getCommission() + num7); accountChangeDetail.setNewData(driver3.getBalance() + driver3.getBackgroundBalance() + driver3.getCouponBalance() + driver3.getCommission()); accountChangeDetail.setNewData(driver3.getCouponBalance() + driver3.getCommission()); driverService.updateById(driver3); accountChangeDetailService.saveData(accountChangeDetail); @@ -1586,11 +1600,11 @@ accountChangeDetail.setUserId(driver1.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(5); accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setOldData(driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setExplain("订单分佣收入"); accountChangeDetail.setCreateTime(new Date()); driver1.setCommission(driver1.getCommission() + num3_); accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setNewData(driver1.getCouponBalance() + driver1.getCommission()); driverService.updateById(driver1); accountChangeDetailService.saveData(accountChangeDetail); @@ -1636,11 +1650,11 @@ accountChangeDetail.setUserId(driver2.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(5); accountChangeDetail.setOldData(driver2.getBalance() + driver2.getBackgroundBalance() + driver2.getCouponBalance() + driver2.getCommission()); accountChangeDetail.setOldData(driver2.getCouponBalance() + driver2.getCommission()); accountChangeDetail.setExplain("订单分佣收入"); accountChangeDetail.setCreateTime(new Date()); driver2.setCommission(driver2.getCommission() + num4); accountChangeDetail.setNewData(driver2.getBalance() + driver2.getBackgroundBalance() + driver2.getCouponBalance() + driver2.getCommission()); accountChangeDetail.setNewData(driver2.getCouponBalance() + driver2.getCommission()); driverService.updateById(driver2); accountChangeDetailService.saveData(accountChangeDetail); @@ -1689,11 +1703,11 @@ accountChangeDetail.setUserId(driver1.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(5); accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setOldData(driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setExplain("订单分佣收入"); accountChangeDetail.setCreateTime(new Date()); driver1.setCommission(driver1.getCommission() + num2_); accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setNewData(driver1.getCouponBalance() + driver1.getCommission()); driverService.updateById(driver1); accountChangeDetailService.saveData(accountChangeDetail); @@ -1760,8 +1774,9 @@ } } } //司机余额扣减抽佣金额 //司机余额扣减抽佣金额,将金额先分账给平台 if(order.getPayMoney() > payMoney){ driver = driverService.selectById(order.getDriverId()); Double m = order.getPayMoney() - payMoney; AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); @@ -1770,11 +1785,11 @@ accountChangeDetail.setType(1); accountChangeDetail.setChangeType(9); accountChangeDetail.setOrderId(order.getId()); accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance()); accountChangeDetail.setExplain("线下收款服务费支出"); accountChangeDetail.setCreateTime(new Date()); driver.setBalance(driver.getBalance() - m); accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance()); driverService.updateById(driver); accountChangeDetailService.saveData(accountChangeDetail); @@ -1829,7 +1844,7 @@ List<PamentOrderUser> splitList = new ArrayList<>(); PamentOrderUser pamentOrderUser = new PamentOrderUser(); pamentOrderUser.setSplitUserId(merchantNumber); pamentOrderUser.setSplitAmount(amount.toString()); pamentOrderUser.setSplitAmount(String.valueOf(Double.valueOf(amount * 100).intValue())); pamentOrderUser.setSplitType("1"); splitList.add(pamentOrderUser); complete.setSplitList(splitList); @@ -1876,11 +1891,11 @@ Receive receive = new Receive(); receive.setOriginalMerOrderId(orderNumber); receive.setAsynMerOrderId(divisionRecord.getMerOrderId()); receive.setRcvAmount(divisionRecord.getAmount().toString()); receive.setRcvAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue())); List<ReceiveUser> splitList = new ArrayList<>(); ReceiveUser receiveUser = new ReceiveUser(); receiveUser.setSplitUserId(merchantNumber); receiveUser.setRcvSplitAmount(divisionRecord.getAmount().toString()); receiveUser.setRcvSplitAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue())); splitList.add(receiveUser); receive.setSplitList(splitList); TrhRequest<Receive> request = new TrhRequest(); @@ -1991,6 +2006,10 @@ if(performanceRankingWarpper.getDriverId().compareTo(driverId) == 0){ break; } if(i == performanceRankingWarppers.size() - 1){ position = 0; d = 0D; } } MyAchievementWarpper myAchievementWarpper = new MyAchievementWarpper(); myAchievementWarpper.setType("订单"); @@ -2012,6 +2031,10 @@ } if(performanceRankingWarpper.getDriverId().compareTo(driverId) == 0){ break; } if(i == performanceRankingWarppers.size() - 1){ position = 0; d = 0D; } } myAchievementWarpper = new MyAchievementWarpper(); @@ -2035,6 +2058,10 @@ if(performanceRankingWarpper.getDriverId().compareTo(driverId) == 0){ break; } if(i == performanceRankingWarppers.size() - 1){ position = 0; d = 0D; } } myAchievementWarpper = new MyAchievementWarpper(); myAchievementWarpper.setType("佣金"); @@ -2051,7 +2078,8 @@ */ @Override public void completeCollection() { List<Order> orders = this.selectList(new EntityWrapper<Order>().eq("state", 107).eq("status", 1).eq("payType", 3)); List<Order> orders = this.selectList(new EntityWrapper<Order>().eq("state", 107).eq("status", 1) .eq("payType", 3).last(" and UNIX_TIMESTAMP(getoffTime) + 120 <= UNIX_TIMESTAMP(now())")); for (Order order : orders) { order.setPayTime(new Date()); if(null != order.getCouponId()){ @@ -2067,13 +2095,13 @@ accountChangeDetail.setUserType(2); accountChangeDetail.setUserId(order.getDriverId()); accountChangeDetail.setCreateTime(new Date()); accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setOldData(driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(7); accountChangeDetail.setOrderId(order.getId()); accountChangeDetail.setExplain("优惠券收入"); driver.setCommission(driver.getCommission() + coupon.getCouponPreferentialAmount()); accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setNewData(driver.getCouponBalance() + driver.getCommission()); driverService.updateById(driver); accountChangeDetailService.insert(accountChangeDetail); @@ -2110,13 +2138,13 @@ accountChangeDetail.setUserType(2); accountChangeDetail.setUserId(order.getDriverId()); accountChangeDetail.setCreateTime(new Date()); accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setOldData(driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(7); accountChangeDetail.setOrderId(order.getId()); accountChangeDetail.setExplain("折扣优惠收入"); driver.setCommission(driver.getCommission() + order.getDiscountAmount()); accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setNewData(driver.getCouponBalance() + driver.getCommission()); driverService.updateById(driver); accountChangeDetailService.insert(accountChangeDetail); driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/RevenueServiceImpl.java
@@ -55,7 +55,7 @@ @Override public List<CommissionListWarpper> queryCommissionList(Integer driverId, String time, Integer pageNum, Integer pageSize) throws Exception { pageNum = (pageNum - 1) * pageSize; Wrapper<Revenue> wrapper = new EntityWrapper<Revenue>().eq("type", 2).eq("userType", 2) Wrapper<Revenue> wrapper = new EntityWrapper<Revenue>().eq("userType", 2) .eq("userId", driverId); if(ToolUtil.isNotEmpty(time)){ wrapper.eq("DATE_FORMAT(createTime, '%Y年%m月')", time); @@ -66,20 +66,7 @@ CommissionListWarpper commissionListWarpper = new CommissionListWarpper(); commissionListWarpper.setCreateTime(revenue.getCreateTime().getTime()); commissionListWarpper.setAmount(revenue.getAmount()); commissionListWarpper.setUserType(2); Order order = orderService.selectById(revenue.getOrderId()); if(null != order.getUserId()){ AppUser appUser = appUserService.selectById(order.getUserId()); if(null != appUser.getInviterType() && appUser.getInviterType() == 2 && appUser.getInviterId().compareTo(driverId) == 0){ commissionListWarpper.setUserType(1); } } if(null == commissionListWarpper.getUserType()){ Driver driver = driverService.selectById(order.getDriverId()); if(null != driver.getInviterType() && driver.getInviterType() == 2 && driver.getInviterId().compareTo(driverId) == 0){ commissionListWarpper.setUserType(2); } } commissionListWarpper.setUserType(revenue.getType()); list.add(commissionListWarpper); } return list; driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/MallBook/util/TrhRequest.java
@@ -7,6 +7,8 @@ import com.supersavedriving.driver.modular.system.util.MallBook.config.ChannelConfig; import com.supersavedriving.driver.modular.system.util.MallBook.model.InterfaceRequest; import com.supersavedriving.driver.modular.system.util.MallBook.model.InterfaceResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @Author xiaogc @@ -14,17 +16,19 @@ */ public class TrhRequest<T> { Logger logger = LoggerFactory.getLogger(TrhRequest.class); public InterfaceResponse execute(T t, String serverCode) { InterfaceRequest<T> request = new InterfaceRequest(t, serverCode); System.out.println("mallbook请求参数:" + JSONUtil.toJsonStr(request)); logger.warn("mallbook请求参数:" + JSONUtil.toJsonStr(request)); String result = HttpUtil.post(ChannelConfig.payUrl, BeanUtil.beanToMap(request)); System.out.println("mallbook响应参数:" + result); logger.warn("mallbook响应参数:" + result); InterfaceResponse response = JSONUtil.toBean(result, InterfaceResponse.class); boolean verify = RSASignature.validate(response.content(), response.getSign()); if (!verify) { throw new ValidateException("签名验证失败"); logger.warn("签名验证失败"); } else { System.out.printf("签名验证通过"); logger.warn("签名验证通过"); } return response; } driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/BalanceDetailWarpper.java
@@ -15,7 +15,7 @@ private String code; @ApiModelProperty("时间") private Long createTime; @ApiModelProperty("类型(1=订单收入,3=充值,4=提现,7=优惠券收入,8=保险支付)") @ApiModelProperty("类型(3=充值,8=保险支付,9=订单信息费)") private Integer type; @ApiModelProperty("金额") private Double amount; driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/CommissionListWarpper.java
@@ -13,7 +13,7 @@ public class CommissionListWarpper { @ApiModelProperty("日期") private Long createTime; @ApiModelProperty("推广类型(1=用户,2=司机)") @ApiModelProperty("推广类型(1=线上收入,2=佣金,3=优惠券)") private Integer userType; @ApiModelProperty("获取佣金") private Double amount; driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/warpper/DriverRegisterWarpper.java
@@ -26,6 +26,8 @@ private String idcardFront; @ApiModelProperty(value = "身份证背面照", required = true, dataType = "string") private String idcardBack; @ApiModelProperty(value = "驾驶证领证时间(2023-01-01)", required = true, dataType = "string") private String firstCertificateTime; @ApiModelProperty(value = "驾驶证照片", required = true, dataType = "string") private String driverLicense; @ApiModelProperty(value = "邀约人类型(1=用户,2=司机)", required = false, dataType = "int") driver/guns-admin/src/main/resources/application.yml
@@ -110,9 +110,9 @@ #支付回调地址 #正式环境 #callbackPath: https://okyueche.com:443/user callbackPath: https://chaoshengdaijia.com:443/driver #测试环境 callbackPath: http://121.37.15.157:80/driver #callbackPath: http://121.37.15.157:80/driver --- driver/guns-admin/src/test/java/com/supersavedriving/driver/GunsApplicationTest.java
@@ -3,6 +3,7 @@ //import com.alibaba.fastjson.JSON; //import com.baomidou.mybatisplus.mapper.EntityWrapper; //import com.supersavedriving.driver.modular.system.model.DriverBank; //import com.supersavedriving.driver.modular.system.model.Order; //import com.supersavedriving.driver.modular.system.model.WeatherCity; //import com.supersavedriving.driver.modular.system.service.*; //import com.supersavedriving.driver.modular.system.util.ResultUtil; @@ -50,7 +51,10 @@ //// ResultUtil resultUtil1 = driverBankService.delDriverBank(1, 1); //// System.err.println(JSON.toJSONString(resultUtil1)); // // ResultUtil resultUtil = driverService.balanceRecharge(1, 1D); // System.err.println(JSON.toJSONString(resultUtil)); //// ResultUtil resultUtil = driverService.balanceRecharge(1, 1D); //// System.err.println(JSON.toJSONString(resultUtil)); // // Order order = orderService.selectById(2019); // orderService.saveRevenue(order); // } //} management/guns-admin/src/main/resources/application.yml
@@ -15,8 +15,8 @@ spring: profiles: active: dev # active: produce # active: dev active: produce mvc: static-path-pattern: /static/** view: @@ -52,8 +52,8 @@ datasource: url: jdbc:mysql://127.0.0.1:3306/super_save_driving?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8 username: root # password: f4OfRjqoN3jSiNGiUoiNsQdOBtCOKYRj password: 123456 password: f4OfRjqoN3jSiNGiUoiNsQdOBtCOKYRj # password: 123456 db-name: super_save_driving #用来搜集数据库的所有表 filters: wall,mergeStat management/guns-admin/src/main/webapp/WEB-INF/view/system/tAgent/tAgent_add.html
@@ -137,7 +137,7 @@ <input class="form-control" id="legalPerson" name="legalPerson" type="text" maxlength="20" placeholder="请输入"> </div> </div> <div class="form-group qy"> <div class="form-group"> <label class="col-sm-3 control-label">*法人身份证号:</label> <div class="col-sm-9"> <input class="form-control" id="merchantIDCode" name="merchantIDCode" type="text" maxlength="20" placeholder="请输入"> @@ -253,6 +253,8 @@ if(userType == 0){ $('.qy').hide(); $('#bankAcctType').html('<option value="2">对私</option>') $('#merchantIDCode').parent('div').siblings('label').text('*身份证号') $('#merchantName').parent('div').siblings('label').text('*姓名') }else{ $('.qy').show(); $('#bankAcctType').html('<option value="1">对公</option>') user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java
@@ -16,6 +16,7 @@ import com.supersavedriving.user.modular.system.util.UUIDUtil; import com.supersavedriving.user.modular.system.util.huawei.OBSUtil; import com.supersavedriving.user.modular.system.util.huawei.SMSUtil; import com.supersavedriving.user.modular.system.util.weChat.WeChatUtil; import com.supersavedriving.user.modular.system.warpper.*; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -63,6 +64,28 @@ @Autowired private RedisUtil redisUtil; @Autowired private WeChatUtil weChatUtil; @ResponseBody @PostMapping("/base/appUser/getUrlLink") // @ServiceLog(name = "获取跳转微信url_link", url = "/base/appUser/appUserLogin") @ApiOperation(value = "获取跳转微信url_link", tags = {"用户端-首页"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "跳转小程序路径", name = "path", required = true, dataType = "string"), @ApiImplicitParam(value = "跳转的附带参数", name = "query", required = false, dataType = "string"), }) public ResponseWarpper<String> getUrlLink(String path, String query){ try { String urlLink = weChatUtil.getUrlLink(path, query, "release"); return ResponseWarpper.success(urlLink); }catch (Exception e){ e.printStackTrace(); return new ResponseWarpper(500, e.getMessage()); } } user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java
@@ -458,13 +458,13 @@ List<Revenue> revenues = revenueService.selectList(new EntityWrapper<Revenue>().eq("userType", 2).eq("orderId", order.getId())); Receive receive = new Receive();//确认收货 receive.setOriginalMerOrderId(merOrderId); receive.setRcvAmount(String.valueOf(order.getPayMoney() * 100)); receive.setRcvAmount(String.valueOf(Double.valueOf(order.getPayMoney() * 100).intValue())); List<ReceiveUser> splitList = new ArrayList<>(); for (Revenue revenue : revenues) { Driver driver = driverService.selectById(revenue.getUserId()); ReceiveUser receiveUser = new ReceiveUser(); receiveUser.setSplitUserId(driver.getMerchantNumber()); receiveUser.setRcvSplitAmount(revenue.getAmount().toString()); receiveUser.setRcvSplitAmount(String.valueOf(Double.valueOf(revenue.getAmount() * 100).intValue())); splitList.add(receiveUser); } receive.setSplitList(splitList); user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/auth/AuthIntercepter.java
@@ -25,7 +25,7 @@ String appid = req.getParameter("appid"); String sign = req.getParameter("sign"); ResultUtil resultUtil = authService.checkSyncAuth(appid, sign, req); if (resultUtil.getCode() != 200) { if (resultUtil.getCode() != 10000) { res.setStatus(HttpStatus.OK.value()); res.setHeader("Content-type", "text/html;charset=UTF-8"); res.getWriter().print(JSON.toJSONString(resultUtil));//Res.Failure("req timeout, please try again") user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Agent.java
@@ -20,86 +20,180 @@ * 主键 */ @TableId(value = "id", type = IdType.AUTO) @TableField("id") private Integer id; /** * 负责人姓名 */ @TableField("principal") @TableField(value = "principal") private String principal; /** * 负责人电话 */ @TableField("principalPhone") @TableField(value = "principalPhone") private String principalPhone; /** * 邮箱 */ @TableField("email") @TableField(value = "email") private String email; /** * 代理区域省名称 */ @TableField("provinceName") private String provinceName; /** * 代理区域省编号 */ @TableField("provinceCode") @TableField(value = "provinceCode") private String provinceCode; /** * 代理区域省名称 */ @TableField(value = "provinceName") private String provinceName; /** * 代理区域市编号 */ @TableField("cityCode") @TableField(value = "cityCode") private String cityCode; /** * 代理区域市名称 */ @TableField("cityName") @TableField(value = "cityName") private String cityName; /** * 状态(1=正常,2=冻结,3=删除) */ @TableField("status") @TableField(value = "status") private Integer status; /** * 添加时间 */ @TableField("createTime") @TableField(value = "createTime") private Date createTime; /** * 开户银行 */ @TableField("bankDeposit") private String bankDeposit; /** * 银行账号 */ @TableField("bankAccount") private String bankAccount; /** * 客服电话 */ @TableField("serviceCalls") @TableField(value = "serviceCalls") private String serviceCalls; /** * 商户类型(1=个体工商户,2=企业) */ @TableField("userType") private Integer userType; /** * 公司名称 */ @TableField("merchantName") private String merchantName; /** * 经营范围 */ @TableField("businessScope") private String businessScope; /** * 统一社会信用码 */ @TableField("socialCreditCode") private String socialCreditCode; /** * 统一社会信用证有效期 */ @TableField("socialCreditCodeExpires") private Date socialCreditCodeExpires; /** * 企业注册省编号 */ @TableField("provCodeEnterprise") private String provCodeEnterprise; /** * 企业注册市编号 */ @TableField("cityCodeEnterprise") private String cityCodeEnterprise; /** * 企业注册区编号 */ @TableField("areaCodeEnterprise") private String areaCodeEnterprise; /** * 企业注册详细地址 */ @TableField("address") private String address; /** * 法人姓名 */ @TableField("legalPerson") private String legalPerson; /** * 法人身份证号码 */ @TableField("merchantIDCode") private String merchantIDCode; /** * 法人身份证有效期 */ @TableField("certIdExpires") private Date certIdExpires; /** * 法人手机号 */ @TableField("legalPhone") private String legalPhone; /** * 附件编号 */ @TableField("fileNo") private String fileNo; /** * 结算账户名 */ @TableField("cardName") private String cardName; /** * 结算账户号 */ @TableField("cardNo") private String cardNo; /** * 银行账户类型(1=对公,2=对私) */ @TableField("bankAcctType") private Integer bankAcctType; /** * 银行预留手机号 */ @TableField("phone") private String phone; /** * 开户行编号 */ @TableField("bankCode") private String bankCode; /** * 开户行地区省编号 */ @TableField("provCodeBank") private String provCodeBank; /** * 开户行地区市编号 */ @TableField("cityCodeBank") private String cityCodeBank; /** * 开户行地区区编号 */ @TableField("areaCodeBank") private String areaCodeBank; /** * 商户号 */ @TableField("merchantNumber") private String merchantNumber; /** * 商户姓名 * 商户状态(0=审核中,1=已成功,2=审核失败) */ @TableField("merchantName") private String merchantName; @TableField("merchantStatus") private Integer merchantStatus; /** * 商户电话 * 结算账户状态(0=审核中,1=已成功,2=审核失败) */ @TableField("merchantPhone") private String merchantPhone; /** * 商户身份证号码 */ @TableField("merchantIDCode") private String merchantIDCode; @TableField("bankStatus") private Integer bankStatus; } user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/RechargeRecord.java
@@ -42,11 +42,6 @@ @TableField("amount") private Double amount; /** * 未分配金额 */ @TableField("unallocatedAmount") private Double unallocatedAmount; /** * 支付方式(1=微信,2=系统充值) */ @TableField("payType") user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java
@@ -17,6 +17,7 @@ import com.supersavedriving.user.modular.system.util.MallBook.model.PaymentOrder; import com.supersavedriving.user.modular.system.util.MallBook.model.PaymentOrderGood; import com.supersavedriving.user.modular.system.util.MallBook.model.QueryOrder; import com.supersavedriving.user.modular.system.util.MallBook.util.Transfer; import com.supersavedriving.user.modular.system.util.MallBook.util.TrhRequest; import com.supersavedriving.user.modular.system.util.PayMoneyUtil; import com.supersavedriving.user.modular.system.util.RedisUtil; @@ -73,6 +74,12 @@ @Autowired private IAccountChangeDetailService accountChangeDetailService; @Autowired private IDriverService driverService; @Autowired private ISystemConfigService systemConfigService; @Value("${callbackPath}") private String callbackPath;//支付回调网关地址 @@ -145,60 +152,100 @@ @Override public ResultUtil<SignInToRegisterWarpper> signInToRegister(SignInToRegister signInToRegister) throws Exception { SignInToRegisterWarpper warpper = new SignInToRegisterWarpper(); if(ToolUtil.isEmpty(signInToRegister.getJscode())){ return ResultUtil.paranErr("jscode"); } if(ToolUtil.isEmpty(signInToRegister.getEncryptedDataPhone())){ return ResultUtil.paranErr("encryptedDataPhone"); } if(ToolUtil.isEmpty(signInToRegister.getIvPhone())){ return ResultUtil.paranErr("ivPhone"); } Code2Session code2Session = weChatUtil.code2Session(signInToRegister.getJscode()); if(null != code2Session.getErrcode() && code2Session.getErrcode() != 0){ return ResultUtil.error(code2Session.getErrmsg()); } String openid = code2Session.getOpenid(); String session_key = code2Session.getSession_key(); String decrypt = WXCore.decrypt(signInToRegister.getEncryptedDataPhone(), session_key, signInToRegister.getIvPhone()); if(ToolUtil.isEmpty(decrypt)){ return ResultUtil.error("获取手机号失败"); } JSONObject phone = JSON.parseObject(decrypt); String purePhoneNumber = phone.getString("purePhoneNumber"); AppUser appUser = this.selectOne(new EntityWrapper<AppUser>().eq("phone", purePhoneNumber).ne("status", 3)); if(null == appUser){ appUser = new AppUser(); appUser.setNickname("亲爱的用户"); appUser.setAvatar("https://csxdj.obs.cn-south-1.myhuaweicloud.com:443/66cc269703a84e4da87fb21e2c21ab1f.png"); appUser.setPhone(purePhoneNumber); appUser.setOpenid(openid); appUser.setUnionid(code2Session.getUnionid()); appUser.setAccountBalance(0D); appUser.setStatus(1); appUser.setCreateTime(new Date()); appUser.setIsException(1); appUser.setInviterId(signInToRegister.getInviterId()); appUser.setInviterType(signInToRegister.getInviterType()); this.insert(appUser); //发送优惠券 boolean lock = redisUtil.lock(); if(lock){ List<CouponWarpper> list = pushCoupon(appUser.getId()); redisUtil.unlock(); warpper.setCoupons(list); try { if(ToolUtil.isEmpty(signInToRegister.getJscode())){ return ResultUtil.paranErr("jscode"); } if(ToolUtil.isEmpty(signInToRegister.getEncryptedDataPhone())){ return ResultUtil.paranErr("encryptedDataPhone"); } if(ToolUtil.isEmpty(signInToRegister.getIvPhone())){ return ResultUtil.paranErr("ivPhone"); } Code2Session code2Session = weChatUtil.code2Session(signInToRegister.getJscode()); if(null != code2Session.getErrcode() && code2Session.getErrcode() != 0){ return ResultUtil.error(code2Session.getErrmsg()); } String openid = code2Session.getOpenid(); String session_key = code2Session.getSession_key(); String decrypt = WXCore.decrypt(signInToRegister.getEncryptedDataPhone(), session_key, signInToRegister.getIvPhone()); if(ToolUtil.isEmpty(decrypt)){ return ResultUtil.error("获取手机号失败"); } JSONObject phone = JSON.parseObject(decrypt); String purePhoneNumber = phone.getString("purePhoneNumber"); AppUser appUser = this.selectOne(new EntityWrapper<AppUser>().eq("phone", purePhoneNumber).ne("status", 3)); if(null == appUser){ appUser = new AppUser(); appUser.setNickname("亲爱的用户"); appUser.setAvatar("https://csxdj.obs.cn-south-1.myhuaweicloud.com:443/66cc269703a84e4da87fb21e2c21ab1f.png"); appUser.setPhone(purePhoneNumber); appUser.setOpenid(openid); appUser.setUnionid(code2Session.getUnionid()); appUser.setAccountBalance(0D); appUser.setStatus(1); appUser.setCreateTime(new Date()); appUser.setIsException(1); appUser.setInviterId(signInToRegister.getInviterId()); appUser.setInviterType(signInToRegister.getInviterType()); this.insert(appUser); //发送优惠券 boolean lock = redisUtil.lock(); if(lock){ List<CouponWarpper> list = pushCoupon(appUser.getId()); redisUtil.unlock(); warpper.setCoupons(list); } } if(appUser.getStatus() == 2){ return ResultUtil.error("账号被冻结"); } String token = getToken(appUser); if(ToolUtil.isEmpty(token)){ return ResultUtil.error("获取身份凭证失败"); } warpper.setToken(token); }catch (Exception e){ e.printStackTrace(); redisUtil.unlock(); } if(appUser.getStatus() == 2){ return ResultUtil.error("账号被冻结"); } String token = getToken(appUser); if(ToolUtil.isEmpty(token)){ return ResultUtil.error("获取身份凭证失败"); } warpper.setToken(token); return ResultUtil.success(warpper); } /** * 转账 * @param id * @param merOrderId * @param toUserId * @param amount * @param notifyUrl * @return */ public ResultUtil zhaunzhang(Integer id, String merOrderId, String toUserId, Double amount, String notifyUrl){ Transfer transfer = new Transfer(); transfer.setDepositMerOrderId(merOrderId); transfer.setToUserId(toUserId); transfer.setAmount(String.valueOf(Double.valueOf(amount * 100).intValue())); transfer.setOrderName("补贴"); transfer.setNotifyUrl(notifyUrl); transfer.setParameter1(id.toString()); TrhRequest<Transfer> request = new TrhRequest(); InterfaceResponse execute = request.execute(transfer, Transfer.SERVICE_CODE); if("0000".equals(execute.getCode())){ JSONObject jsonObject = JSON.parseObject(execute.getResult()); Integer status = jsonObject.getInteger("status");//0:待处理;1:成功;2:失败 if(2 == status){ System.err.println("转账失败"); return ResultUtil.error("转账失败"); } return ResultUtil.success(); }else{ System.err.println("转账失败:" + execute.getMsg()); return ResultUtil.error(execute.getMsg()); } } /** @@ -320,7 +367,7 @@ PaymentOrder paymentOrder = new PaymentOrder(); paymentOrder.setBizOrderId(out_trade_no); paymentOrder.setAmount(String.valueOf(amount * 100)); paymentOrder.setAmount(String.valueOf(Double.valueOf(amount * 100).intValue())); paymentOrder.setOrderName("账户充值"); paymentOrder.setPayType("WX_MINI"); paymentOrder.setTransferType("0"); user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java
@@ -245,8 +245,8 @@ order.setStartDistance(distance);//起步里程 order.setStartPrice(num4);//起步价 }else{ BigDecimal subtract = new BigDecimal(distance).subtract(new BigDecimal(num3));//超出起步里程 BigDecimal divide = subtract.divide(new BigDecimal(num5), new MathContext(2, RoundingMode.HALF_EVEN)); BigDecimal subtract = new BigDecimal(distance).subtract(new BigDecimal(num3)).setScale(2, BigDecimal.ROUND_HALF_EVEN);//超出起步里程 BigDecimal divide = subtract.divide(new BigDecimal(num5), 2, BigDecimal.ROUND_HALF_EVEN); BigDecimal multiply = divide.multiply(new BigDecimal(num6)); order.setStartDistance(num3);//起步里程 order.setStartPrice(num4);//起步价 @@ -260,8 +260,8 @@ } //计算长途里程超出的部分 if(distance.compareTo(num8) > 0){ BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num8)); BigDecimal divide1 = subtract1.divide(new BigDecimal(num10), new MathContext(2, RoundingMode.HALF_EVEN)); BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num8)).setScale(2, BigDecimal.ROUND_HALF_EVEN); BigDecimal divide1 = subtract1.divide(new BigDecimal(num10), 2, BigDecimal.ROUND_HALF_EVEN); BigDecimal multiply1 = divide1.multiply(new BigDecimal(num11)); order.setOverLongDistance(subtract1.doubleValue());//超出长途里程 order.setOverLongDistancePrice(multiply1.doubleValue());//超出长途里程费 @@ -525,6 +525,10 @@ if(driver1.getServerStatus() == 2 || driver1.getOpenOrderQRCode() == 1){ continue; } DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>().eq("driverId", driver1.getId()).eq("status", 1)); if(null == driverWork){ continue; } Map<String, Double> distance = GeodesyUtil.getDistance(value, order.getStartLng() + "," + order.getStartLat()); Double wgs84 = distance.get("WGS84"); if(d == null || d.compareTo(wgs84) > 0){ @@ -570,6 +574,11 @@ if(ToolUtil.isEmpty(value)){ continue; } DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>().eq("driverId", driver1.getId()).eq("status", 1)); if(null == driverWork){ continue; } if(integral == null || integral.compareTo(driver1.getIntegral()) < 0){//积分大 integral = driver1.getIntegral(); score = driver1.getScore(); @@ -615,14 +624,53 @@ if(order1.getState() == 101 || order1.getState() == 201){ order1.setHallOrder(1); OrderServiceImpl.this.updateById(order1); ExtraPushOrder(order); } } }, num4 * 1000); }else{ order.setHallOrder(1); this.updateById(order); ExtraPushOrder(order); } } public void ExtraPushOrder(Order order){ String startLat = order.getStartLat(); String startLng = order.getStartLng(); //找到中心点 GeoJsonPoint geoJsonPoint = new GeoJsonPoint(Double.valueOf(startLng), Double.valueOf(startLat)); Double num = 5D;//范围公里 //构造半径 Distance distanceR = new Distance(num, Metrics.KILOMETERS); //画圆 Circle circle = new Circle(geoJsonPoint, distanceR); // 构造query对象 Query query = Query.query(Criteria.where("location").withinSphere(circle)); List<Location> locations = mongoTemplate.find(query, Location.class); List<Integer> driverIds = locations.stream().map(Location::getDriverId).collect(Collectors.toList()); if(driverIds.size() == 0){ return; } List<DriverWork> tDriverWorks = driverWorkService.selectList(new EntityWrapper<DriverWork>().in("driverId", driverIds).eq("status", 1)); driverIds = tDriverWorks.stream().map(DriverWork::getDriverId).collect(Collectors.toList()); List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().eq("approvalStatus", 2) .eq("serverStatus", 1).eq("openOrderQRCode", 0).eq("status", 1).in("id", driverIds)); if(drivers.size() == 0){ return; } for (Driver driver1 : drivers) { String value = redisUtil.getValue("DRIVER" + driver1.getId()); if (ToolUtil.isEmpty(value)) { return; } pushUtil.pushGrabOrderExtras(driver1.getId(), 2); } } /** @@ -754,8 +802,13 @@ @Override public OrderPriceWarpper queryOrderPrice(Integer uid, Long orderId) throws Exception { Order order = this.selectById(orderId); Coupon coupon = userToCouponService.queryCoupon(uid, order.getOrderMoney()); OrderPriceWarpper orderPriceWarpper = new OrderPriceWarpper(); BeanUtils.copyProperties(order, orderPriceWarpper); if(null != coupon){ orderPriceWarpper.setCouponId(coupon.getId()); orderPriceWarpper.setDiscountedPrice(coupon.getCouponPreferentialAmount()); } orderPriceWarpper.setActualMileage(new BigDecimal(order.getActualMileage() / 1000).setScale(2, RoundingMode.HALF_EVEN).doubleValue()); orderPriceWarpper.setTravelTime(Double.valueOf((order.getGetoffTime().getTime() - order.getStartTime().getTime()) / 60000).intValue()); return orderPriceWarpper; @@ -895,7 +948,7 @@ PaymentOrder paymentOrder = new PaymentOrder(); paymentOrder.setBizOrderId(out_trade_no); paymentOrder.setAmount(String.valueOf(payMoney * 100)); paymentOrder.setAmount(String.valueOf(Double.valueOf(payMoney * 100).intValue())); paymentOrder.setOrderName("代驾服务费"); paymentOrder.setPayType("WX_MINI"); paymentOrder.setTransferType("0"); @@ -921,9 +974,6 @@ String status = jsonObject.getString("status"); if("2".equals(status)){ return ResultUtil.error("失败"); } if("0".equals(status)){ return ResultUtil.error("处理中"); } String merOrderId = jsonObject.getString("merOrderId"); String payCode = jsonObject.getString("payCode"); @@ -1004,13 +1054,13 @@ accountChangeDetail.setUserType(2); accountChangeDetail.setUserId(order.getDriverId()); accountChangeDetail.setCreateTime(new Date()); accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setOldData(driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(7); accountChangeDetail.setOrderId(order.getId()); accountChangeDetail.setExplain("优惠券收入"); driver.setCommission(driver.getCommission() + coupon.getCouponPreferentialAmount()); accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setNewData(driver.getCouponBalance() + driver.getCommission()); driverService.updateById(driver); accountChangeDetailService.insert(accountChangeDetail); } @@ -1084,13 +1134,13 @@ accountChangeDetail.setUserType(2); accountChangeDetail.setUserId(order.getDriverId()); accountChangeDetail.setCreateTime(new Date()); accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setOldData(driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(7); accountChangeDetail.setOrderId(order.getId()); accountChangeDetail.setExplain("优惠券收入"); driver.setCommission(driver.getCommission() + coupon.getCouponPreferentialAmount()); accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setNewData(driver.getCouponBalance() + driver.getCommission()); driverService.updateById(driver); accountChangeDetailService.insert(accountChangeDetail); } @@ -1149,9 +1199,6 @@ String status = jsonObject.getString("status"); if("2".equals(status)){ return ResultUtil.error("失败"); } if("0".equals(status)){ return ResultUtil.error("处理中"); } String merOrderId = jsonObject.getString("merOrderId"); String payCode = jsonObject.getString("payCode"); @@ -1292,7 +1339,7 @@ if(null != systemConfig){ //{"num1":"10:00","num2":"14:00","num3":10,"num4":10,"num5":10,"num6":10,"num7":10,"num8":10,"num9":5,"num10":5} JSONObject jsonObject = JSON.parseObject(systemConfig.getContent()); Integer num5 = jsonObject.getInteger("num5"); Integer num5 = jsonObject.getInteger("num6"); //增加积分变动记录 AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); @@ -1345,20 +1392,46 @@ //司机分佣和司机推荐用户首单奖励都在平台的抽佣中扣除,剩余的为平台抽佣。 Driver driver = driverService.selectById(order.getDriverId()); AppUser appUser = appUserService.selectById(order.getUserId()); //首单积分奖励 //司机推荐首单收入 List<Integer> state = Arrays.asList(107, 108, 109); int count = this.selectCount(new EntityWrapper<Order>().eq("userId", appUser.getId()).eq("status", 1).in("state", state)); if(null != appUser.getInviterType() && appUser.getInviterType() == 2 && count == 1){ Driver driver1 = driverService.selectById(appUser.getInviterId()); SystemConfig systemConfig1 = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 4)); JSONObject jsonObject2 = JSON.parseObject(systemConfig1.getContent()); Integer num4 = jsonObject2.getInteger("num4"); 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.setOrderId(order.getId()); accountChangeDetail.setOldData(driver1.getIntegral().doubleValue()); accountChangeDetail.setExplain("邀请用户首单积分奖励"); accountChangeDetail.setCreateTime(new Date()); driver1.setIntegral(driver1.getIntegral() + num4); accountChangeDetail.setNewData(driver1.getIntegral().doubleValue()); accountChangeDetailService.insert(accountChangeDetail); driverService.updateById(driver1); } Double payMoney = order.getPayMoney();//todo 司机订单收入归并到佣金中一起提现 SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 3)); if(null != systemConfig){ JSONObject jsonObject = JSON.parseObject(systemConfig.getContent()); Double num2 = jsonObject.getDouble("num2"); Double num3 = jsonObject.getDouble("num3"); if(order.getPayMoney() >= num2){ if(order.getOrderMoney().compareTo(num2) >= 0){//订单金额大于num2开始分佣 payMoney = payMoney - num3;//司机收入 SystemConfig systemConfig1 = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 2)); if(null != systemConfig1){ JSONObject jsonObject1 = JSON.parseObject(systemConfig1.getContent()); //司机推荐首单收入 List<Integer> state = Arrays.asList(108, 109); int count = this.selectCount(new EntityWrapper<Order>().eq("userId", appUser.getId()).eq("status", 1).in("state", state)); if(null != appUser.getInviterType() && appUser.getInviterType() == 2 && count == 1){ Double num1 = jsonObject1.getDouble("num1"); num1 = (num3 >= num1 ? num1 : num3); @@ -1371,11 +1444,11 @@ accountChangeDetail.setUserId(driver1.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(5); accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setExplain("订单分佣收入"); accountChangeDetail.setOldData(driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setExplain("邀请用户首单奖励"); accountChangeDetail.setCreateTime(new Date()); driver1.setCommission(driver1.getCommission() + num1); accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setNewData(driver1.getCouponBalance() + driver1.getCommission()); driverService.updateById(driver1); accountChangeDetailService.saveData(accountChangeDetail); @@ -1416,7 +1489,7 @@ } //开始处理层级抽佣 if(null != driver & null != driver.getInviterType() && driver.getInviterType() == 2){ if(num3 > 0 && null != driver & null != driver.getInviterType() && driver.getInviterType() == 2){ Driver driver1 = driverService.selectById(driver.getInviterId());//一级司机 if(null != driver1 && null != driver1.getInviterType() && driver1.getInviterType() == 2){ Driver driver2 = driverService.selectById(driver1.getInviterId());//二级司机 @@ -1442,11 +1515,11 @@ accountChangeDetail.setUserId(driver1.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(5); accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setOldData(driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setExplain("订单分佣收入"); accountChangeDetail.setCreateTime(new Date()); driver1.setCommission(driver1.getCommission() + num5); accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setNewData(driver1.getCouponBalance() + driver1.getCommission()); driverService.updateById(driver1); accountChangeDetailService.saveData(accountChangeDetail); @@ -1493,11 +1566,11 @@ accountChangeDetail.setUserId(driver2.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(5); accountChangeDetail.setOldData(driver2.getBalance() + driver2.getBackgroundBalance() + driver2.getCouponBalance() + driver2.getCommission()); accountChangeDetail.setOldData(driver2.getCouponBalance() + driver2.getCommission()); accountChangeDetail.setExplain("订单分佣收入"); accountChangeDetail.setCreateTime(new Date()); driver2.setCommission(driver2.getCommission() + num6); accountChangeDetail.setNewData(driver2.getBalance() + driver2.getBackgroundBalance() + driver2.getCouponBalance() + driver2.getCommission()); accountChangeDetail.setNewData(driver2.getCouponBalance() + driver2.getCommission()); driverService.updateById(driver2); accountChangeDetailService.saveData(accountChangeDetail); @@ -1545,11 +1618,11 @@ accountChangeDetail.setUserId(driver3.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(5); accountChangeDetail.setOldData(driver3.getBalance() + driver3.getBackgroundBalance() + driver3.getCouponBalance() + driver3.getCommission()); accountChangeDetail.setOldData(driver3.getCouponBalance() + driver3.getCommission()); accountChangeDetail.setExplain("订单分佣收入"); accountChangeDetail.setCreateTime(new Date()); driver3.setCommission(driver3.getCommission() + num7); accountChangeDetail.setNewData(driver3.getBalance() + driver3.getBackgroundBalance() + driver3.getCouponBalance() + driver3.getCommission()); accountChangeDetail.setNewData(driver3.getCouponBalance() + driver3.getCommission()); driverService.updateById(driver3); accountChangeDetailService.saveData(accountChangeDetail); @@ -1599,11 +1672,11 @@ accountChangeDetail.setUserId(driver1.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(5); accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setOldData(driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setExplain("订单分佣收入"); accountChangeDetail.setCreateTime(new Date()); driver1.setCommission(driver1.getCommission() + num3_); accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setNewData(driver1.getCouponBalance() + driver1.getCommission()); driverService.updateById(driver1); accountChangeDetailService.saveData(accountChangeDetail); @@ -1650,11 +1723,11 @@ accountChangeDetail.setUserId(driver2.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(5); accountChangeDetail.setOldData(driver2.getBalance() + driver2.getBackgroundBalance() + driver2.getCouponBalance() + driver2.getCommission()); accountChangeDetail.setOldData(driver2.getCouponBalance() + driver2.getCommission()); accountChangeDetail.setExplain("订单分佣收入"); accountChangeDetail.setCreateTime(new Date()); driver2.setCommission(driver2.getCommission() + num4); accountChangeDetail.setNewData(driver2.getBalance() + driver2.getBackgroundBalance() + driver2.getCouponBalance() + driver2.getCommission()); accountChangeDetail.setNewData(driver2.getCouponBalance() + driver2.getCommission()); driverService.updateById(driver2); accountChangeDetailService.saveData(accountChangeDetail); @@ -1704,11 +1777,11 @@ accountChangeDetail.setUserId(driver1.getId()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(5); accountChangeDetail.setOldData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setOldData(driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setExplain("订单分佣收入"); accountChangeDetail.setCreateTime(new Date()); driver1.setCommission(driver1.getCommission() + num2_); accountChangeDetail.setNewData(driver1.getBalance() + driver1.getBackgroundBalance() + driver1.getCouponBalance() + driver1.getCommission()); accountChangeDetail.setNewData(driver1.getCouponBalance() + driver1.getCommission()); driverService.updateById(driver1); accountChangeDetailService.saveData(accountChangeDetail); @@ -1780,6 +1853,8 @@ } } } driver = driverService.selectById(order.getDriverId()); //司机订单收入 Revenue revenue = new Revenue(); revenue.setType(1); @@ -1797,7 +1872,8 @@ accountChangeDetail.setType(1); accountChangeDetail.setChangeType(1); accountChangeDetail.setOrderId(order.getId()); accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setOldData(driver.getCouponBalance() + driver.getCommission()); driver.setCommission(driver.getCommission() + payMoney); accountChangeDetail.setExplain("订单收入"); accountChangeDetail.setCreateTime(new Date()); if(null != order.getCouponId()){ @@ -1828,20 +1904,7 @@ } if(null != order.getDiscountAmount() && 0 < order.getDiscountAmount()){ accountChangeDetail = new AccountChangeDetail(); accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3)); accountChangeDetail.setUserType(2); accountChangeDetail.setUserId(order.getDriverId()); accountChangeDetail.setCreateTime(new Date()); accountChangeDetail.setOldData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setType(1); accountChangeDetail.setChangeType(7); accountChangeDetail.setOrderId(order.getId()); accountChangeDetail.setExplain("折扣优惠收入"); driver.setCommission(driver.getCommission() + order.getDiscountAmount()); accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); driverService.updateById(driver); accountChangeDetailService.insert(accountChangeDetail); //补贴中分账 Double discountedPrice = order.getDiscountAmount(); List<RechargeRecord> rechargeRecords = rechargeRecordService.selectList(new EntityWrapper<RechargeRecord>().eq("type", 4).eq("payStatus", 2).gt("surplusDividedAmount", 0).orderBy("createTime")); @@ -1866,7 +1929,7 @@ } } } accountChangeDetail.setNewData(driver.getBalance() + driver.getBackgroundBalance() + driver.getCouponBalance() + driver.getCommission()); accountChangeDetail.setNewData(driver.getCouponBalance() + driver.getCommission()); driverService.updateById(driver); accountChangeDetailService.saveData(accountChangeDetail); @@ -1890,14 +1953,14 @@ Double surplusDividedAmount = rechargeRecord.getSurplusDividedAmount(); if(surplusDividedAmount.compareTo(payMoney) >= 0){ //分账司机收入 ResultUtil fengzhang = fengzhang(1, driver.getId(), driver.getMerchantNumber(), order.getId().longValue(), order.getOrderNo(), payMoney, 1); ResultUtil fengzhang = fengzhang(1, driver.getId(), driver.getMerchantNumber(), order.getId().longValue(), rechargeRecord.getOrderNumber(), payMoney, 1); if(10000 == fengzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(rechargeRecord.getSurplusDividedAmount() - payMoney); rechargeRecordService.updateById(rechargeRecord); } break; }else{ ResultUtil fengzhang = fengzhang(1, driver.getId(), driver.getMerchantNumber(), order.getId().longValue(), order.getOrderNo(), surplusDividedAmount, 1); ResultUtil fengzhang = fengzhang(1, driver.getId(), driver.getMerchantNumber(), order.getId().longValue(), rechargeRecord.getOrderNumber(), surplusDividedAmount, 1); if(10000 == fengzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); @@ -1919,14 +1982,14 @@ Double surplusDividedAmount = rechargeRecord.getSurplusDividedAmount(); if(surplusDividedAmount.compareTo(money) >= 0){ //分账司机收入 ResultUtil fengzhang = fengzhang(3, null, "553021440975", order.getId().longValue(), order.getOrderNo(), money, 1); ResultUtil fengzhang = fengzhang(3, null, "553021440975", order.getId().longValue(), rechargeRecord.getOrderNumber(), money, 1); if(10000 == fengzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(rechargeRecord.getSurplusDividedAmount() - money); rechargeRecordService.updateById(rechargeRecord); } break; }else{ ResultUtil fengzhang = fengzhang(3, null, "553021440975", order.getId().longValue(), order.getOrderNo(), surplusDividedAmount, 1); ResultUtil fengzhang = fengzhang(3, null, "553021440975", order.getId().longValue(), rechargeRecord.getOrderNumber(), surplusDividedAmount, 1); if(10000 == fengzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); @@ -1957,14 +2020,14 @@ Double surplusDividedAmount = rechargeRecord.getSurplusDividedAmount(); if(surplusDividedAmount.compareTo(balancePayment) >= 0){ //分账司机收入 ResultUtil fengzhang = fengzhang(1, driver.getId(), driver.getMerchantNumber(), order.getId().longValue(), order.getOrderNo(), balancePayment, 1); ResultUtil fengzhang = fengzhang(1, driver.getId(), driver.getMerchantNumber(), order.getId().longValue(), rechargeRecord.getOrderNumber(), balancePayment, 1); if(10000 == fengzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(rechargeRecord.getSurplusDividedAmount() - balancePayment); rechargeRecordService.updateById(rechargeRecord); } break; }else{ ResultUtil fengzhang = fengzhang(1, driver.getId(), driver.getMerchantNumber(), order.getId().longValue(), order.getOrderNo(), surplusDividedAmount, 1); ResultUtil fengzhang = fengzhang(1, driver.getId(), driver.getMerchantNumber(), order.getId().longValue(), rechargeRecord.getOrderNumber(), surplusDividedAmount, 1); if(10000 == fengzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); @@ -1984,14 +2047,14 @@ Double surplusDividedAmount = rechargeRecord.getSurplusDividedAmount(); if(surplusDividedAmount.compareTo(money) >= 0){ //分账司机收入 ResultUtil fengzhang = fengzhang(3, null, "553021440975", order.getId().longValue(), order.getOrderNo(), money, 1); ResultUtil fengzhang = fengzhang(3, null, "553021440975", order.getId().longValue(), rechargeRecord.getOrderNumber(), money, 1); if(10000 == fengzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(rechargeRecord.getSurplusDividedAmount() - money); rechargeRecordService.updateById(rechargeRecord); } break; }else{ ResultUtil fengzhang = fengzhang(3, null, "553021440975", order.getId().longValue(), order.getOrderNo(), surplusDividedAmount, 1); ResultUtil fengzhang = fengzhang(3, null, "553021440975", order.getId().longValue(), rechargeRecord.getOrderNumber(), surplusDividedAmount, 1); if(10000 == fengzhang.getCode()){ rechargeRecord.setSurplusDividedAmount(0D); rechargeRecordService.updateById(rechargeRecord); @@ -2031,7 +2094,7 @@ List<PamentOrderUser> splitList = new ArrayList<>(); PamentOrderUser pamentOrderUser = new PamentOrderUser(); pamentOrderUser.setSplitUserId(merchantNumber); pamentOrderUser.setSplitAmount(amount.toString()); pamentOrderUser.setSplitAmount(String.valueOf(Double.valueOf(amount * 100).intValue())); pamentOrderUser.setSplitType("1"); splitList.add(pamentOrderUser); complete.setSplitList(splitList); @@ -2078,11 +2141,11 @@ Receive receive = new Receive(); receive.setOriginalMerOrderId(orderNumber); receive.setAsynMerOrderId(divisionRecord.getMerOrderId()); receive.setRcvAmount(divisionRecord.getAmount().toString()); receive.setRcvAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue())); List<ReceiveUser> splitList = new ArrayList<>(); ReceiveUser receiveUser = new ReceiveUser(); receiveUser.setSplitUserId(merchantNumber); receiveUser.setRcvSplitAmount(divisionRecord.getAmount().toString()); receiveUser.setRcvSplitAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue())); splitList.add(receiveUser); receive.setSplitList(splitList); TrhRequest<Receive> request = new TrhRequest(); @@ -2110,7 +2173,7 @@ Transfer transfer = new Transfer(); transfer.setDepositMerOrderId(merOrderId); transfer.setToUserId(toUserId); transfer.setAmount(String.valueOf(Double.valueOf(amount * 100))); transfer.setAmount(String.valueOf(Double.valueOf(amount * 100).intValue())); transfer.setOrderName("补贴"); transfer.setNotifyUrl(notifyUrl); transfer.setParameter1(id.toString()); user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/SystemConfigServiceImpl.java
@@ -85,7 +85,12 @@ Map<String, Object> map = new HashMap<>(); map.put("waitTime", num1 + "分钟/" + num2 + "元"); map.put("exceedWaitTime", "超出" + num3 + "分钟,收取" + num4 + "元/分钟"); map.put("badWeather", "雨天、恶劣天气时代驾里程在" + num5 + "公里内加" + num6 + "元/单,达" + num7 + "公里或以上的订单按总价加" + num8 + "倍计费,封顶加" + num9 + "元"); systemConfig = this.selectOne(new EntityWrapper<SystemConfig>().eq("type", 8)); JSONObject jsonObject1 = JSON.parseObject(systemConfig.getContent()); Integer num11 = jsonObject1.getInteger("num1");//开启恶劣天气计价 if(1 == num11){ map.put("badWeather", "雨天、恶劣天气时代驾里程在" + num5 + "公里内加" + num6 + "元/单,达" + num7 + "公里或以上的订单按总价加" + num8 + "倍计费,封顶加" + num9 + "元"); } priceRulesWarpper.setAdditionalFee(JSON.toJSONString(map)); } return priceRulesWarpper; user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/MallBook/util/TrhRequest.java
@@ -7,6 +7,8 @@ import com.supersavedriving.user.modular.system.util.MallBook.config.ChannelConfig; import com.supersavedriving.user.modular.system.util.MallBook.model.InterfaceRequest; import com.supersavedriving.user.modular.system.util.MallBook.model.InterfaceResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @Author xiaogc @@ -14,17 +16,19 @@ */ public class TrhRequest<T> { Logger logger = LoggerFactory.getLogger("ServiceLog"); public InterfaceResponse execute(T t, String serverCode) { InterfaceRequest<T> request = new InterfaceRequest(t, serverCode); System.out.println("mallbook请求参数:" + JSONUtil.toJsonStr(request)); logger.warn("mallbook请求参数:" + JSONUtil.toJsonStr(request)); String result = HttpUtil.post(ChannelConfig.payUrl, BeanUtil.beanToMap(request)); System.out.println("mallbook响应参数:" + result); logger.warn("mallbook响应参数:" + result); InterfaceResponse response = JSONUtil.toBean(result, InterfaceResponse.class); boolean verify = RSASignature.validate(response.content(), response.getSign()); if (!verify) { throw new ValidateException("签名验证失败"); } else { System.out.printf("签名验证通过"); logger.warn("签名验证通过"); } return response; } user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/PushUtil.java
@@ -206,6 +206,41 @@ /** * 系统推单推送 附加(防止 用户推单后,范围内的司机20s 内接不到单的补充方法) * @param id 接受对象id * @param type 接受对象类型(1=用户,2=司机) */ public void pushGrabOrderExtras(Integer id, Integer type){ JSONObject msg = new JSONObject(); msg.put("code", 200); msg.put("msg", "SUCCESS"); msg.put("method", "PUSH_ORDER"); Map<String, Object> map = new HashMap<>(); msg.put("data", map); //调用推送 HttpHeaders headers = new HttpHeaders(); // 以表单的方式提交 headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); //将请求头部和参数合成一个请求 MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); params.add("msg", msg.toJSONString()); params.add("id", id.toString()); params.add("type", type.toString()); HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers); String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class); JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class); if(jsonObject1.getIntValue("code") != 200){ logger.debug(jsonObject1.getString("msg")); System.err.println(jsonObject1.getString("msg")); } } /** * 转单成功推送 * @param id * @param type user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/weChat/WeChatUtil.java
@@ -412,4 +412,31 @@ String body1 = exchange.getBody(); return body1; } /** * 获取小程序urllink码 * env_version 默认值"release"。要打开的小程序版本。正式版为 "release",体验版为"trial",开发版为"develop",仅在微信外打开时生效。 * @return */ public String getUrlLink(String path, String query, String env_version) throws Exception{ String wxAppletsAccessToken = redisUtil.getValue("wxAppletsAccessToken"); String url = "https://api.weixin.qq.com/wxa/generate_urllink?access_token=" + wxAppletsAccessToken; Map<String, Object> param = new HashMap<>(); param.put("path", path); param.put("query", query); param.put("is_expire", true); param.put("expire_type", 0); param.put("expire_time", System.currentTimeMillis() + 60 * 60 * 1000); param.put("env_version", env_version); HttpHeaders httpHeaders = new HttpHeaders(); MediaType type=MediaType.parseMediaType("application/json;charset=UTF-8"); httpHeaders.setContentType(type); HttpEntity<Map<String, Object>> requestEntity = new HttpEntity<>(param, httpHeaders); ResponseEntity<String> exchange = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class); String body1 = exchange.getBody(); return body1; } } user/guns-admin/src/main/resources/application.yml
@@ -121,9 +121,9 @@ #支付回调地址 #正式环境 #callbackPath: http://121.37.15.157:80/user callbackPath: https://chaoshengdaijia.com:443/user #正式测试环境 callbackPath: http://121.37.15.157:80/user #callbackPath: http://121.37.15.157:80/user --- @@ -137,15 +137,15 @@ # mallbook 调起接口参数配置 mallbook: # pay_url:mallbook接口地址 测试环境: https://uat.mallbook.cn/api 生产环境:https://cloudpay.mallbook.cn/api pay_url: https://uat.mallbook.cn/api pay_url: https://cloudpay.mallbook.cn/api # merchant_no 业务系统商户平台编号,需替换为mallbook工作人员提供的商户编号 merchant_no: HF2023041901 merchant_no: MBH23056 # version 接口版本号 version: 1.0.0 # channel_type 渠道类型 HF:汇付 channel_type: HF # merchant_private_key 商户平台私钥,需要替换成商户平台自己生成的私钥 merchant_private_key: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIDGadl1oxP7EJg+/o32vpAMa8cwFevD6xu3FjIh04TOuVTpC9hbAwiyX/9OKQi3nHEISyrtnF6Y49tkmb7X8nDwOahvsyOjgNYp+NtSLAdgPAbd6lv2DPC1lVYYu5IkMz7PRifntROFH6OvE5fpj6GinaFY3TYBjyDcC2VVbq/LAgMBAAECgYATdmlvDWF9Vpe2eubcK+u3N7leXH0jqfOxt6UqJISkcN3/4E0DARZfTR5HJtf60k1ZpAhAT7MvdOoTMYwvFNI2WEFRwND5wBl+OdEN/lyWeISjjg1EnnTLj/azGLgE8Z2q/FodGikqrGrc2tSNIy75afeW2gUTF3DHiwcG76SYeQJBAPOyIzpT3yMfM7iVhjaPfmyxvDXq0cLwiAF0eUbrebPO0EevI+PKYhmN2oRMis6wSJbv+sbkElOXQzDefjw0ieUCQQCHRuFlX9JQYUOoyyirKxpu30uys+ygZqmo4PiKgIaaJJPm2p2o7vzZJANGmkmdwFf2LLzij70InKGvqGTEnvfvAkEAnJOMRuG0sOBPXv3TaiLwW+4mu43QkKvy9txbP9H0NC9ha22AZc+XEEwwZmi3lu109mXifv/zNnot1axe91facQJALExcwQqo32OKeXrVvX+m70m2CzX6NeiIhGHvYcOG0HFL8ZwDZu+j4yN04yjhFISJCXdK/1Icj/ZiyBf3r59zBwJACl7Sya9BcqRo5XJ/A7+T2E3VQT2nIopy0hPRLKWFaOzrCIsn3gcC58KSACXl2QMiG5kp1192QOC26b3o57ZecA== merchant_private_key: MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALHmyTrxPYcAwABnX+3VW9vxUftm57zBpnbfOT4vizMnKdpfCkIgtdbfdnSCtt637yWM2fxnZfItnhTeQA2lL8f4SXgZt/bVXfmAWi4IxQ+HJy0Qs8nNy2nnjICPBPcpWzHwUxQ/THHqU0a7b9B91J5DFcbQb25BHeRpHwkBw6A/AgMBAAECgYAmcWq2s/7Jt53F+JDAQkTRaHqAyyH0phwkv+QMzhVUfngK2lLLK2pf/nYIg16lDjY9dQx+AJIFHVp1w/kveayzOz3BIqPoznyIVYPolRGZCWPo+2vdp0CIdBh7zahST5g5Gem4cU47wO5hPYs1kXKPG4mUPtaIAMHFxhyLvIagAQJBAOS63AIZrRrldeNCVVNXbpAT52JuWLCgravM9coOh6scmG6UQwxxcott8hneHr9fazk2LHbHMxlG8F+dQPA0+D8CQQDHHJN7Dnske8oJ+1sq4uhQP3HMsmNIgth+ZcaZpiPcxnNKYVGhzAwTVV2ruFJle5ajebo6zfWuqJhtZGRNh1gBAkA/lRoXk1+lfGfa9tOVSVa4wm+t0xLgdqoQefdRZdyc2mQdSSWiTd8Tl0qXmkFd3X6G9uJBWnp/6lJjoektXOwtAkBsZTQsw99qJzIAaSRinpDWTxPG2j6OlR0DAqkxsG7JnAfbsEteh9TzGYAbIgdJVBTX/kbSCJn9ca85rnOkeVABAkAUbDfU3Z702z20NtwAxc1IkrtQ1lKuqSpj9/LuR1/6KRkYQsUWnUiOO9hu5YDWIcflFrnCenF8j8OnvGghltxT # mall_book_public_key mallbook测试环境公钥 不需要替换 mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD0L2DaHOO8ekhktB6RoHxIcki/0v7OUeOn9tX9VBE+jv6PRjqlZRWL3Qezxz5ADtHEyLv+RFFaceXSep6rWyoQ6DRlvLv5CySUAxAM42LLVe4DI3l/0ccEAIuU5NCpwAAj1zkm2X01DwUCZwymLjlqbDlBvQhpq+1fddtTtA/QLQIDAQAB mall_book_public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq6OLZKgUHH5wOk9xSBgN7yC17r3PQwMlY9/IorqrOlaIqrU0eAVZ5+dWrJD/3bdu7Ctq8n8trTm/IUYs7wtMg5SKwyX4/N+KQc2N7LL4yCq4vNl41q9sYgrtA0QnZoucIZcq1mwyu7RTDC8Wp7LGddnlkJsmL8masgMxA6cc9NwIDAQAB zuul/src/main/java/com/sinata/zuul/util/applets/ChildChannelHandler.java
@@ -14,13 +14,13 @@ @Override protected void initChannel(SocketChannel socketChannel) throws Exception { // String path = "C:\\Program Files\\Apache Software Foundation\\Tomcat 8.5\\cert\\SHA256withRSA_lzhyc.cn.pfx"; // String path = "/usr/local/server/app/cert/tomcat/scs1680576839056_chaoshengdaijia.com_server.jks"; // SSLContext sslContext = createSSLContext.createSSLContext("JKS" // , path, "Zf3^5v6OoWmOVgeQ"); // //SSLEngine 此类允许使用ssl安全套接层协议进行安全通信 // SSLEngine engine = sslContext.createSSLEngine(); // engine.setUseClientMode(false); // socketChannel.pipeline().addLast("ssl", new SslHandler(engine)); String path = "/usr/local/server/app/cert/tomcat/scs1680576839056_chaoshengdaijia.com_server.jks"; SSLContext sslContext = createSSLContext.createSSLContext("JKS" , path, "Zf3^5v6OoWmOVgeQ"); //SSLEngine 此类允许使用ssl安全套接层协议进行安全通信 SSLEngine engine = sslContext.createSSLEngine(); engine.setUseClientMode(false); socketChannel.pipeline().addLast("ssl", new SslHandler(engine)); // 设置30秒没有读到数据,则触发一个READER_IDLE事件。 // pipeline.addLast(new IdleStateHandler(30, 0, 0)); zuul/src/main/resources/application.yml
@@ -4,6 +4,10 @@ spring: application: name: zuul-gateway #服务名称 servlet: multipart: max-request-size: 500MB max-file-size: 500MB eureka: client: zuul/src/main/resources/redis.properties
@@ -1,6 +1,7 @@ #redisÅäÖÿªÊ¼ # RedisÊý¾Ý¿âË÷Òý£¨Ä¬ÈÏΪ0£© spring.redis.database=0 # Redis·þÎñÆ÷µØÖ· spring.redis.host=127.0.0.1 # Redis·þÎñÆ÷Á¬½Ó¶Ë¿Ú @@ -8,12 +9,13 @@ # Redis·þÎñÆ÷Á¬½ÓÃÜÂ루ĬÈÏΪ¿Õ£© spring.redis.password=cKsEeyffDXG5PzNg8CIbrWxFluXrCprZ ## Redis·þÎñÆ÷µØÖ· # Redis·þÎñÆ÷µØÖ· #spring.redis.host=127.0.0.1 ## Redis·þÎñÆ÷Á¬½Ó¶Ë¿Ú #spring.redis.port=6379 ## Redis·þÎñÆ÷Á¬½ÓÃÜÂ루ĬÈÏΪ¿Õ£© #spring.redis.password=123456 # Á¬½Ó³Ø×î´óÁ¬½ÓÊý£¨Ê¹ÓøºÖµ±íʾûÓÐÏÞÖÆ£© spring.redis.jedis.pool.max-active=1024 # Á¬½Ó³Ø×î´ó×èÈûµÈ´ýʱ¼ä£¨Ê¹ÓøºÖµ±íʾûÓÐÏÞÖÆ£©