无关风月
2024-10-27 f2a57f2a9fa309f872d10c7fada992b63a0c0d5f
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.account.api.feignClient.AppUserClient;
import com.ruoyi.account.api.model.TAppUser;
import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
import com.ruoyi.chargingPile.api.feignClient.ParkingLotClient;
import com.ruoyi.chargingPile.api.model.*;
@@ -16,16 +18,20 @@
import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
import com.ruoyi.chargingPile.service.*;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.order.api.feignClient.ChargingOrderClient;
import com.ruoyi.order.api.model.TChargingOrder;
import com.ruoyi.other.api.domain.TVip;
import com.ruoyi.other.api.feignClient.RoleSiteClient;
import com.ruoyi.other.api.feignClient.UserSiteClient;
import com.ruoyi.other.api.feignClient.VipClient;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.feignClient.SysUserRoleClient;
@@ -88,7 +94,12 @@
   @Resource
   private SysUserRoleClient userRoleClient;
   @Resource
   private VipClient vipClient;
   @Resource
   private TokenService tokenService;
   @Resource
   private AppUserClient appUserClient;
   /**
@@ -115,14 +126,29 @@
      Site byId = siteService.getById(one.getSiteId());
      TAccountingStrategy byId1 = accountingStrategyService.getById(byId.getAccountingStrategyId());
      List<TAccountingStrategyDetail> list = accountingStrategyDetailService.lambdaQuery().eq(TAccountingStrategyDetail::getAccountingStrategyId, byId1.getId()).list();
      list.stream().filter(item -> "00:00".equals(item.getEndTime())).forEach(item -> item.setEndTime("23:59:59"));
      for (TAccountingStrategyDetail tAccountingStrategyDetail : list) {
         // 当前时间属于那个阶段 取哪个阶段的电价
         if(LocalTime.now().isAfter(LocalTime.parse(tAccountingStrategyDetail.getStartTime())) && LocalTime.now().isBefore(LocalTime.parse(tAccountingStrategyDetail.getEndTime()))){
            siteInfoVO.setElectrovalence(tAccountingStrategyDetail.getElectrovalence());
         if(DateUtils.string2LocalTime(tAccountingStrategyDetail.getStartTime() + ":00").compareTo(LocalTime.now()) <= 0
               && DateUtils.string2LocalTime(tAccountingStrategyDetail.getEndTime() + ("23:59:59".equals(tAccountingStrategyDetail.getEndTime())?"":":00")).compareTo(LocalTime.now()) > 0){
            siteInfoVO.setElectrovalence(tAccountingStrategyDetail.getElectrovalence().add(tAccountingStrategyDetail.getServiceCharge()).setScale(4, BigDecimal.ROUND_HALF_UP));
            if(null != byId1.getDiscount()){
               siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence().multiply(byId1.getDiscount()).setScale(4, BigDecimal.ROUND_HALF_UP));
               siteInfoVO.setVipElectrovalence((tAccountingStrategyDetail.getServiceCharge().multiply(byId1.getDiscount()).add(tAccountingStrategyDetail.getElectrovalence())).setScale(4, BigDecimal.ROUND_HALF_UP));
            }else{
               siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence());
               // 获取当前登录用户id
               Long userId = tokenService.getLoginUserApplet().getUserId();
               // 根据id查询用户信息
               TAppUser appUser = appUserClient.getUserById(userId).getData();
               if(Objects.nonNull(appUser)){
                  TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
                  if(Objects.nonNull(vip) && vip.getType() == 2){
                     siteInfoVO.setVipElectrovalence(vip.getDiscount().divide(new BigDecimal(10)).multiply(tAccountingStrategyDetail.getServiceCharge()).add(tAccountingStrategyDetail.getElectrovalence()));
                  }else {
                     siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence());
                  }
               }else {
                  siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence());
               }
            }
         }
      }
@@ -145,14 +171,29 @@
      Site byId = siteService.getById(one.getSiteId());
      TAccountingStrategy byId1 = accountingStrategyService.getById(byId.getAccountingStrategyId());
      List<TAccountingStrategyDetail> list = accountingStrategyDetailService.lambdaQuery().eq(TAccountingStrategyDetail::getAccountingStrategyId, byId1.getId()).list();
      list.stream().filter(item -> "00:00".equals(item.getEndTime())).forEach(item -> item.setEndTime("23:59:59"));
      for (TAccountingStrategyDetail tAccountingStrategyDetail : list) {
         // 当前时间属于那个阶段 取哪个阶段的电价
         if(LocalTime.now().isAfter(LocalTime.parse(tAccountingStrategyDetail.getStartTime())) && LocalTime.now().isBefore(LocalTime.parse(tAccountingStrategyDetail.getEndTime()))){
            siteInfoVO.setElectrovalence(tAccountingStrategyDetail.getElectrovalence());
         if(DateUtils.string2LocalTime(tAccountingStrategyDetail.getStartTime() + ":00").compareTo(LocalTime.now()) <= 0
               && DateUtils.string2LocalTime(tAccountingStrategyDetail.getEndTime() + ("23:59:59".equals(tAccountingStrategyDetail.getEndTime())?"":":00")).compareTo(LocalTime.now()) > 0){
            siteInfoVO.setElectrovalence(tAccountingStrategyDetail.getElectrovalence().add(tAccountingStrategyDetail.getServiceCharge()).setScale(4, BigDecimal.ROUND_HALF_UP));
            if(null != byId1.getDiscount()){
               siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence().multiply(byId1.getDiscount()).setScale(4, BigDecimal.ROUND_HALF_UP));
               siteInfoVO.setVipElectrovalence((tAccountingStrategyDetail.getServiceCharge().multiply(byId1.getDiscount()).add(tAccountingStrategyDetail.getElectrovalence())).setScale(4, BigDecimal.ROUND_HALF_UP));
            }else{
               siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence());
               // 获取当前登录用户id
               Long userId = tokenService.getLoginUserApplet().getUserId();
               // 根据id查询用户信息
               TAppUser appUser = appUserClient.getUserById(userId).getData();
               if(Objects.nonNull(appUser)){
                  TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
                  if(Objects.nonNull(vip) && vip.getType() == 2){
                     siteInfoVO.setVipElectrovalence(vip.getDiscount().divide(new BigDecimal(10)).multiply(tAccountingStrategyDetail.getServiceCharge()).add(tAccountingStrategyDetail.getElectrovalence()));
                  }else {
                     siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence());
                  }
               }else {
                  siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence());
               }
            }
         }
      }