无关风月
2025-01-17 06e4db5a576c63c10ab4673dba017ffe1a3e7e66
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile
12个文件已修改
197 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/IntegralRuleClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralRuleController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,47 +81,24 @@
                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());
                tAppUserVipDetail1.setDiscountMoney(vip.getMaximumDeduction());
                tAppUserVipDetail1.setSendMonth(1);
            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());
            tAppUserVipDetail1.setDiscountMoney(vip.getMaximumDeduction());
            tAppUserVipDetail1.setSendMonth(1);
            tAppUserVipDetail1.setVipType(type);
                tAppUserVipDetail1.setVipJson(JSON.toJSONString(info.getData()));
                tAppUserVipDetailService.save(tAppUserVipDetail1);
//            }
            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
@@ -86,30 +86,30 @@
        Integer roleType = sysUser.getRoleType();
        List<Integer> siteIds = new ArrayList<>();
            List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userid).getData();
            for (GetSiteListDTO datum : data) {
                siteIds.add(datum.getId());
            }
            if (siteIds.isEmpty()){
                siteIds.add(-1);
            }else{
                if (roleType == 2){
                    List<Integer> integers = new ArrayList<>();
                    for (Integer siteId : siteIds) {
                        // 校验有没有这个站点的权限
                        List<Boolean> t1= partnerClient.parkingRecordListMenu(sysUser.getObjectId(),siteId).getData();
        List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userid).getData();
        for (GetSiteListDTO datum : data) {
            siteIds.add(datum.getId());
        }
        if (siteIds.isEmpty()){
            siteIds.add(-1);
        }else{
            if (roleType == 2){
                List<Integer> integers = new ArrayList<>();
                for (Integer siteId : siteIds) {
                    // 校验有没有这个站点的权限
                    List<Boolean> t1= partnerClient.parkingRecordListMenu(sysUser.getObjectId(),siteId).getData();
                        Boolean b = t1.get(1);
                        if (b){
                            integers.add(siteId);
                        }
                    Boolean b = t1.get(1);
                    if (b){
                        integers.add(siteId);
                    }
                    siteIds = integers;
                }
                siteIds = integers;
            }
            if (siteIds.isEmpty()){
                siteIds.add(-1);
            }
        }
        if (siteIds.isEmpty()){
            siteIds.add(-1);
        }
        List<TParkingLot> list = parkingLotService.lambdaQuery().in( TParkingLot::getSiteId, siteIds).list();
        List<Integer> ids = new ArrayList<>();
        for (TParkingLot tParkingLot : list) {
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")