ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
@@ -84,7 +84,7 @@ @PostMapping(value = "/t-app-user/refundPoints/{param}") public R refundPoints(@PathVariable("param")String param); @PostMapping(value = "/t-app-user/user/give/vip") @PostMapping(value = "/t-app-user/user/give/vip1") public R giveVip(@RequestBody GiveVipDto giveVipDto); ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/IntegralRuleClient.java
@@ -19,6 +19,6 @@ * 获取积分设置 * @return */ @GetMapping("/integral/getSet") @PostMapping("/integral/getSet2") R<TIntegralRule> getSet(); } ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java
@@ -4,6 +4,7 @@ import javax.servlet.http.HttpServletRequest; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.auth.NotLoginException; import com.ruoyi.common.core.exception.user.UserAppletException; import org.apache.commons.fileupload.FileUploadBase; import org.slf4j.Logger; @@ -61,6 +62,19 @@ } /** * 没有登录异常 * @param e * @param request * @return */ @ExceptionHandler(NotLoginException.class) public AjaxResult notLoginException(NotLoginException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); log.error("请求地址'{}',登录校验失败'{}'", requestURI, e.getMessage()); return AjaxResult.error(HttpStatus.UNAUTHORIZED, e.getMessage()); } /** * 请求方式不支持 */ @ExceptionHandler(HttpRequestMethodNotSupportedException.class) ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
@@ -5,6 +5,7 @@ import java.util.concurrent.TimeUnit; import javax.servlet.http.HttpServletRequest; import com.ruoyi.common.core.exception.auth.NotLoginException; import com.ruoyi.common.core.exception.user.UserAppletException; import com.ruoyi.system.api.model.LoginUserApplet; import org.springframework.beans.factory.annotation.Autowired; @@ -94,7 +95,7 @@ public LoginUserApplet getLoginUserApplet() { LoginUserApplet loginUserAppletToken = getLoginUserAppletToken(ServletUtils.getRequest()); if (loginUserAppletToken == null) { throw new RuntimeException("令牌已过期,请重新登录!"); throw new NotLoginException("令牌已过期,请重新登录!"); } return loginUserAppletToken; } @@ -132,7 +133,7 @@ public LoginUser getLoginUser() { LoginUser loginUser = getLoginUser(ServletUtils.getRequest()); if (loginUser == null) { throw new RuntimeException("令牌已过期,请重新登录!"); throw new NotLoginException("令牌已过期,请重新登录!"); } return loginUser; } ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
@@ -1,5 +1,6 @@ package com.ruoyi.gateway.filter; import com.ruoyi.common.core.exception.auth.NotLoginException; import com.ruoyi.gateway.config.properties.AntiShakeProperties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -179,15 +180,15 @@ public void verifyToken(ServerHttpRequest request) throws Exception{ String token = getToken(request); if (StringUtils.isEmpty(token)) { throw new RuntimeException("令牌不能为空"); throw new NotLoginException("令牌不能为空"); } Claims claims = JwtUtils.parseToken(token); if (claims == null) { throw new RuntimeException("令牌已过期或验证不正确!"); throw new NotLoginException("令牌已过期或验证不正确!"); } String userid = JwtUtils.getUserId(claims); if (StringUtils.isEmpty(userid)) { throw new RuntimeException("令牌验证失败"); throw new NotLoginException("令牌验证失败"); } } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -835,6 +835,51 @@ } return R.ok(); } @PostMapping(value = "/user/give/vip1") public R giveVip1(@RequestBody GiveVipDto giveVipDto) { String[] split = giveVipDto.getUserIds().split(","); for (String s : split) { TAppUser nowUser = appUserService.getById(s); int plusDay = 0; if (giveVipDto.getType() == 1) { plusDay = 1; } else if (giveVipDto.getType() == 2) { plusDay = 3; } else if (giveVipDto.getType() == 3) { plusDay = 12; } BigDecimal bigDecimal = new BigDecimal("0"); TVip info = vipClient.getInfo1(giveVipDto.getVipId()).getData(); switch (giveVipDto.getType()){ case 1: bigDecimal = bigDecimal.add(info.getMonthlyCard()==null?new BigDecimal(0):info.getMonthlyCard()); break; case 2: bigDecimal = bigDecimal.add(info.getSeasonCard()==null?new BigDecimal(0):info.getSeasonCard()); break; case 3: bigDecimal = bigDecimal.add(info.getAnnualCard()==null?new BigDecimal(0):info.getAnnualCard()); break; } //增加vipDetail giveVipUtil.sendVip(nowUser, giveVipDto.getVipId(),plusDay,giveVipDto.getType()); appUserService.updateById(nowUser); // 新增后台赠送记录 TGrantVip tGrantVip = new TGrantVip(); tGrantVip.setCode(OrderCodeUtil.getOrderCode("ZS")); tGrantVip.setAppUserId(nowUser.getId()); tGrantVip.setVipId(giveVipDto.getVipId()); tGrantVip.setOrderAmount(bigDecimal); tGrantVip.setCreateTime(LocalDateTime.now()); tGrantVip.setAppUserId(nowUser.getId()); orderClient.managementGiveVip(tGrantVip); } return R.ok(); } @ApiOperation(value = "已赠送列表", tags = {"小程序-个人中心-邀请好友"}) @PostMapping(value = "/user/invite/page") ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java
@@ -32,7 +32,6 @@ private TAppCouponService appCouponService; public void sendVip(TAppUser nowUser,Integer vipId,Integer plusDay,Integer type){ if (nowUser.getVipEndTime()==null||nowUser.getVipEndTime().isBefore(LocalDateTime.now())) { nowUser.setVipEndTime(LocalDateTime.now().plusMonths(plusDay).minusDays(1)); nowUser.setVipId(vipId); //直接再detail里新增数据,因为不是续费 @@ -56,6 +55,7 @@ tAppUserVipDetail.setSendMonth(1); tAppUserVipDetail.setVipJson(JSON.toJSONString(info.getData())); tAppUserVipDetail.setVipType(type); tAppUserVipDetail.setCreateTime(LocalDateTime.now()); tAppUserVipDetailService.save(tAppUserVipDetail); //直接赠送优惠卷 for (SendCouponDto sendCouponDto : javaList) { @@ -81,36 +81,15 @@ appCouponService.save(tAppCoupon); } } }else { // nowUser.setVipEndTime(nowUser.getVipEndTime().plusDays(plusDay).minusDays(1)); //获取detail里结束时间大于当前时间的数据,并将enttime延长 // TAppUserVipDetail tAppUserVipDetail = tAppUserVipDetailService.lambdaQuery().eq(TAppUserVipDetail::getVipId,vipId).eq(TAppUserVipDetail::getAppUserId, nowUser.getId()).orderByDesc(TAppUserVipDetail::getEndTime).last("limit 1").one(); // if (tAppUserVipDetail!=null) { // List<TAppUserVipDetail> list = tAppUserVipDetailService.lambdaQuery().eq(TAppUserVipDetail::getAppUserId, nowUser.getId()).ge(TAppUserVipDetail::getStartTime, tAppUserVipDetail.getEndTime()).list(); // for (TAppUserVipDetail appUserVipDetail : list) { // appUserVipDetail.setStartTime(appUserVipDetail.getStartTime().plusMonths(plusDay).minusDays(1)); // appUserVipDetail.setEndTime(appUserVipDetail.getEndTime().plusMonths(plusDay).minusDays(1)); // } // tAppUserVipDetailService.updateBatchById(list); // tAppUserVipDetail.setEndTime(tAppUserVipDetail.getEndTime().plusMonths(plusDay).minusDays(1)); // // tAppUserVipDetailService.updateById(tAppUserVipDetail); // }else // { TAppUserVipDetail tAppUserVipDetail2 = tAppUserVipDetailService.lambdaQuery().eq(TAppUserVipDetail::getAppUserId, nowUser.getId()).orderByDesc(TAppUserVipDetail::getEndTime).last("limit 1").one(); TAppUserVipDetail tAppUserVipDetail1 = new TAppUserVipDetail(); tAppUserVipDetail1.setAppUserId(nowUser.getId()); tAppUserVipDetail1.setStartTime(tAppUserVipDetail2.getEndTime()); tAppUserVipDetail1.setEndTime(tAppUserVipDetail2.getEndTime().plusMonths(plusDay).minusDays(1)); tAppUserVipDetail1.setVipId(vipId); R<TVip> info = vipClient.getInfo1(vipId); TVip vip = info.getData(); tAppUserVipDetail1.setCouponIds(vip.getCoupon()); tAppUserVipDetail1.setSendChargeNum(vip.getDiscountTimes()); tAppUserVipDetail1.setChargeNum(vip.getDiscountTimes()); @@ -118,10 +97,8 @@ tAppUserVipDetail1.setSendMonth(1); tAppUserVipDetail1.setVipType(type); tAppUserVipDetail1.setVipJson(JSON.toJSONString(info.getData())); tAppUserVipDetail1.setCreateTime(LocalDateTime.now()); tAppUserVipDetailService.save(tAppUserVipDetail1); // } } } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
@@ -300,7 +300,7 @@ } BigDecimal multiply = bigDecimal1.multiply(new BigDecimal("24")); BigDecimal divide = bigDecimal.divide(multiply, 0, BigDecimal.ROUND_HALF_UP); BigDecimal divide = bigDecimal.divide(multiply, 4, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_EVEN); record.setP1(divide); } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -484,11 +484,13 @@ BigDecimal v = list.stream().map(TChargingPile::getRatedPower).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(4, RoundingMode.HALF_EVEN); List<Double> data = chargingOrderAccountingStrategyClient.getDailyChargingDegree(6, siteIds).getData(); List<Double> value2 = new ArrayList<>(); BigDecimal multiply = new BigDecimal(list.size()).multiply(v).multiply(new BigDecimal(24)); for (Double datum : data) { if(list.size() == 0){ value2.add(0D); }else{ Double datum1 = new BigDecimal(datum).divide(new BigDecimal(list.size()).multiply(v).multiply(new BigDecimal(24)), new MathContext(4, RoundingMode.HALF_EVEN)).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); Double datum1 = new BigDecimal(datum).divide(multiply, new MathContext(4, RoundingMode.HALF_EVEN)) .multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); value2.add(datum1); } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -1903,20 +1903,17 @@ } List<Map<String,Object>> capMap = chargingOrderService.getchargingCapacity(siteIds,statisticsQueryDto); List<TChargingPile> chargingPiles = chargingPileClient.getChargingPileBySiteIds(siteIds).getData(); //获取chargingPiles的ratedPower的总和再乘以chargingPiles的数量再乘以24 BigDecimal totalRatedPower = chargingPiles.stream().map(TChargingPile::getRatedPower).reduce(BigDecimal.ZERO, BigDecimal::add).multiply(new BigDecimal(chargingPiles.size())).multiply(new BigDecimal(24)); //将capMap的chargingCapacity除以totalRatedPower保留两位数 //每日利用率=当日充电度数/(总桩数量*桩总功率*24小时) BigDecimal multiply1 = new BigDecimal(chargingPiles.size()).multiply(totalRatedPower).multiply(new BigDecimal(24)); capMap.forEach(map -> { BigDecimal chargingCapacity = (BigDecimal) map.get("chargingCapacity"); BigDecimal result = chargingCapacity.divide(totalRatedPower, 4, RoundingMode.HALF_UP); BigDecimal result = chargingCapacity.divide(multiply1, 4, RoundingMode.HALF_UP); BigDecimal multiply = result.multiply(new BigDecimal(100)); map.put("chargingCapacity", multiply); }); // // 解析 startTime 和 endTime 为 LocalDate LocalDate startDate = statisticsQueryDto.getStartTime(); LocalDate endDate = statisticsQueryDto.getEndTime(); @@ -1941,8 +1938,6 @@ startDate = startDate.plusDays(1); } return R.ok(dateRangeStatistics); } ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java
@@ -79,6 +79,12 @@ return R.ok(res); } @PostMapping("/getSet2") public R<TIntegralRule> getSet2() { TIntegralRule res = integralRuleService.getOne(new QueryWrapper<>()); return R.ok(res); } @GetMapping("/getSet1")