From 7b477828acb81c542b34dc603511bf6bcbe88ca5 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期六, 12 十月 2024 17:00:08 +0800 Subject: [PATCH] 修改bug --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 265 ++++++++++++++++++++++++---------------------------- 1 files changed, 124 insertions(+), 141 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java index a0b4ccd..d88a463 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java @@ -679,7 +679,7 @@ if(null != preChargeCheck1){ preChargeCheck1.setElectronicLockLock(true); preChargeCheck1.setInsulationTesting(true); - preChargeCheck1.setSecureConnectionDetection(preChargeCheck1.getSecureConnectionDetection()); + preChargeCheck1.setSecureConnectionDetection(securityDetection.getSecure_connection() == 1); preChargeCheck1.setStartupSuccess(1); redisService.setCacheObject("AQJC_" + chargingOrder.getChargingGunId(), preChargeCheck1, 24L, TimeUnit.HOURS); } @@ -773,8 +773,7 @@ if(null != preChargeCheck1){ preChargeCheck1.setElectronicLockLock(true); preChargeCheck1.setInsulationTesting(true); - preChargeCheck1.setSecureConnectionDetection(preChargeCheck1.getSecureConnectionDetection()); - preChargeCheck1.setStartupSuccess(1); + preChargeCheck1.setSecureConnectionDetection(securityDetection.getSecure_connection() == 1); redisService.setCacheObject("AQJC_" + chargingGun.getId(), preChargeCheck1, 24L, TimeUnit.HOURS); } } @@ -796,7 +795,6 @@ if(null != preChargeCheck1){ preChargeCheck1.setElectronicLockLock(true); preChargeCheck1.setInsulationTesting(true); - preChargeCheck1.setSecureConnectionDetection(preChargeCheck1.getSecureConnectionDetection()); preChargeCheck1.setStartupSuccess(1); } if(0 == startup_result){ @@ -910,7 +908,7 @@ public ChargingDetails getChargingDetails(Integer id) { Long userId = tokenService.getLoginUserApplet().getUserId(); TChargingOrder one = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, userId).eq(TChargingOrder::getChargingGunId, id) - .in(TChargingOrder::getStatus, Arrays.asList(1, 2, 3)).eq(TChargingOrder::getRechargePaymentStatus, 2).eq(TChargingOrder::getDelFlag, 0)); + .eq(TChargingOrder::getRechargePaymentStatus, 2).eq(TChargingOrder::getDelFlag, 0).orderByDesc(TChargingOrder::getEndTime).last(" limit 0, 1")); if(null == one){ return null; } @@ -967,7 +965,93 @@ chargingOrder.setStatus(4); chargingOrder.setEndMode(1); this.updateById(chargingOrder); + //计算用户标签 + editUserTag(chargingOrder); + //用户推荐奖励 + referralReward(chargingOrder); + //计算费用,处理退款 + endCharge(chargingOrder); + TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); + // 将枪状态重置为空闲 + chargingGun.setStatus(2); + chargingGunClient.updateChargingGunById(chargingGun); + String code1 = chargingOrder.getCode(); + + //异步线程处理停机 + ExecutorService cachedThreadPool = Executors.newFixedThreadPool(1); + cachedThreadPool.execute(()->{ + //调用硬件停止充电,停止成功后开始计算费用退款 + TChargingPile chargingPile = chargingPileClient.getChargingPileById(chargingOrder.getChargingPileId()).getData(); + PlatformStopCharging platformStopCharging = new PlatformStopCharging(); + platformStopCharging.setCharging_pile_code(chargingPile.getCode()); + platformStopCharging.setCharging_gun_code(chargingGun.getCode()); + sendMessageClient.platformStopCharging(platformStopCharging); + log.error(code1 + ":-------------------远程停止充电请求-------------------"); + log.error(platformStopCharging.toString()); + //开始查询停机应答,成功后开始计费费用 + for (int i = 0; i < 60; i++) { + TChargingOrder chargingOrder1 = this.getById(id); + if(chargingOrder1.getStatus() != 3){ + break; + } + GetPlatformStopChargingReply query = new GetPlatformStopChargingReply(); + query.setCharging_gun_code(chargingGun.getCode()); + query.setCharging_pile_code(chargingPile.getCode()); + query.setEnd_time(chargingOrder.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + PlatformStopChargingReply reply = platformStopChargingReplyClient.getPlatformStopChargingReply(query).getData(); + log.error(code1 + ":-------------------查询远程停止充电应答-------------------"); + if(null == reply){ + log.error(code1 + ":-------------------远程停止充电应答无数据-------------------"); + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + continue; + } + log.error(reply.toString()); + + if(0 == reply.getStop_result()){ + String failure_cause = ""; + switch (reply.getFailure_cause()){ + case 0: + failure_cause = "无"; + break; + case 1: + failure_cause = "设备编号不匹配"; + break; + case 2: + failure_cause = "枪未处于充电状态"; + break; + case 3: + failure_cause = "其他"; + break; + } + log.error(code1 + ":停机失败:订单号:{},失败原因:{}", chargingOrder.getCode(), failure_cause); + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + continue; + } + log.error(code1 + ":-------------------远程停止充电请求成功-------------------"); + break; + } + + chargingOrder.setStatus(5); + this.updateById(chargingOrder); + }); + return AjaxResult.success(); + } + + + /** + * 结束充电后处理用户标签数据 + * @param chargingOrder + */ + public void editUserTag(TChargingOrder chargingOrder){ //处理用户标签数据 List<TUserTag> data = userTagClient.getAllUserTag().getData(); //累计充电次数 @@ -1024,79 +1108,14 @@ } } } - String code1 = chargingOrder.getCode(); - - //异步线程处理停机 - ExecutorService cachedThreadPool = Executors.newFixedThreadPool(1); - cachedThreadPool.execute(()->{ - //调用硬件停止充电,停止成功后开始计算费用退款 - TChargingPile chargingPile = chargingPileClient.getChargingPileById(chargingOrder.getChargingPileId()).getData(); - TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); - PlatformStopCharging platformStopCharging = new PlatformStopCharging(); - platformStopCharging.setCharging_pile_code(chargingPile.getCode()); - platformStopCharging.setCharging_gun_code(chargingGun.getCode()); - sendMessageClient.platformStopCharging(platformStopCharging); - log.error(code1 + ":-------------------远程停止充电请求-------------------"); - log.error(platformStopCharging.toString()); - //开始查询停机应答,成功后开始计费费用 - for (int i = 0; i < 60; i++) { - GetPlatformStopChargingReply query = new GetPlatformStopChargingReply(); - query.setCharging_gun_code(chargingGun.getCode()); - query.setCharging_pile_code(chargingPile.getCode()); - query.setEnd_time(chargingOrder.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); - PlatformStopChargingReply reply = platformStopChargingReplyClient.getPlatformStopChargingReply(query).getData(); - log.error(code1 + ":-------------------查询远程停止充电应答-------------------"); - if(null == reply){ - log.error(code1 + ":-------------------远程停止充电应答无数据-------------------"); - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - continue; - } - log.error(reply.toString()); - TChargingOrder chargingOrder1 = this.getById(id); - if(chargingOrder1.getStatus() != 3){ - break; - } - - if(0 == reply.getStop_result()){ - String failure_cause = ""; - switch (reply.getFailure_cause()){ - case 0: - failure_cause = "无"; - break; - case 1: - failure_cause = "设备编号不匹配"; - break; - case 2: - failure_cause = "枪未处于充电状态"; - break; - case 3: - failure_cause = "其他"; - break; - } - log.error(code1 + ":停机失败:订单号:{},失败原因:{}", chargingOrder.getCode(), failure_cause); - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - continue; - } - - // 将枪状态重置为空闲 - chargingGun.setStatus(2); - chargingGunClient.updateChargingGunById(chargingGun); - //计算费用,处理退款 - endCharge(chargingOrder); - log.error(code1 + ":-------------------远程停止充电请求成功-------------------"); - break; - } - }); - - + } + + + /** + * 推荐奖励(被推荐首单奖励) + * @param chargingOrder + */ + public void referralReward(TChargingOrder chargingOrder){ //处理推荐奖励(被推荐首单奖励) TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData(); long count = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId()) @@ -1140,14 +1159,12 @@ appUserIntegralChange.setHistoricalIntegral(appUser1.getPoints()); appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1); appUserIntegralChange.setCreateTime(LocalDateTime.now()); - appUserIntegralChange.setOrderCode(code1); + appUserIntegralChange.setOrderCode(chargingOrder.getCode()); appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); - + appUser1.setPoints(appUser1.getPoints() + num1); appUserClient.updateAppUser(appUser1); } - - return AjaxResult.success(); } @@ -1167,6 +1184,21 @@ if(null != order && order.getStatus() != 3){ return; } + + order.setEndTime(LocalDateTime.now()); + order.setStatus(5); + order.setEndMode(1); + this.updateById(order); + //计算用户标签 + editUserTag(order); + //用户推荐奖励 + referralReward(order); + //计算费用,处理退款 + endCharge(order); + // 将枪状态重置为空闲 + chargingGun.setStatus(2); + chargingGunClient.updateChargingGunById(chargingGun); + String code1 = order.getCode(); if(0 == platformStopChargingReply.getStop_result()){ String failure_cause = ""; @@ -1185,14 +1217,7 @@ break; } log.error(code1 + ":停机失败:订单号:{},失败原因:{}", order.getCode(), failure_cause); - return; } - - // 将枪状态重置为空闲 - chargingGun.setStatus(2); - chargingGunClient.updateChargingGunById(chargingGun); - //计算费用,处理退款 - endCharge(order); } @@ -1946,61 +1971,19 @@ } chargingOrder.setStatus(5); chargingOrder.setEndMode(endMode); + chargingOrder.setEndTime(LocalDateTime.now()); this.updateById(chargingOrder); - + // 将枪状态重置为空闲 + TChargingGun chargingGun = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); + chargingGun.setStatus(2); + chargingGunClient.updateChargingGunById(chargingGun); + + //计算用户标签 + editUserTag(chargingOrder); + //用户推荐奖励 + referralReward(chargingOrder); //计算费用,处理退款 endCharge(chargingOrder); - - //处理推荐奖励(被推荐首单奖励) - TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData(); - long count = this.count(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserId, chargingOrder.getAppUserId()) - .eq(TChargingOrder::getStatus, 5).isNull(TChargingOrder::getEndMode).eq(TChargingOrder::getDelFlag, 0)); - if(null != appUser.getInviteUserId() && 1 == count){ - TIntegralRule integralRule = integralRuleClient.getSet().getData(); - String inviteUsersToEarnPoints = integralRule.getInviteUsersToEarnPoints(); - JSONObject jsonObject = JSON.parseObject(inviteUsersToEarnPoints); - Integer num1 = jsonObject.getInteger("num1"); - - TAppUser appUser1 = appUserClient.getUserById(appUser.getInviteUserId()).getData(); - if(null != appUser1.getVipId()){ - TVip vip = vipClient.getInfo1(appUser1.getVipId()).getData(); - Integer doubleIntegration = vip.getDoubleIntegration(); - //双倍积分 - if(1 == doubleIntegration){ - num1 *= 2; - } - } - - GetInviteUser query = new GetInviteUser(); - query.setAppUserId(appUser1.getId()); - query.setBeInvitedAppUserId(chargingOrder.getAppUserId()); - TInviteUser inviteUser = inviteUserClient.getInviteUser(query).getData(); - if(null == inviteUser){ - inviteUser = new TInviteUser(); - inviteUser.setAppUserId(appUser1.getId()); - inviteUser.setBeInvitedAppUserId(chargingOrder.getAppUserId()); - inviteUser.setAward(num1); - inviteUser.setCreateTime(LocalDateTime.now()); - inviteUserClient.saveInviteUser(inviteUser); - }else{ - inviteUser.setAward(num1); - inviteUserClient.updateInviteUser(inviteUser); - } - TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange(); - String code = Double.valueOf(Math.random() * 1000).intValue() + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")); - appUserIntegralChange.setCode(code); - appUserIntegralChange.setAppUserId(appUser1.getId()); - appUserIntegralChange.setChangeType(5); - appUserIntegralChange.setHistoricalIntegral(appUser1.getPoints()); - appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1); - appUserIntegralChange.setCreateTime(LocalDateTime.now()); - appUserIntegralChange.setOrderCode(chargingOrder.getCode()); - appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); - - appUser1.setPoints(appUser1.getPoints() + num1); - appUserClient.updateAppUser(appUser1); - } - } /** -- Gitblit v1.7.1