From f37b3d71b2ce011e938cc3bf1fddc1c5fd14e15b Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期六, 17 八月 2024 17:37:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java                            |    4 +-
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TMonitoringEquipment.java                    |    8 ++++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java                      |   31 +++++++++++++--
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TMonitoringEquipmentMapper.xml                       |    6 ++-
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java |   55 +++++++++++++++++++++------
 5 files changed, 82 insertions(+), 22 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TMonitoringEquipment.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TMonitoringEquipment.java
index 792a76c..8754310 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TMonitoringEquipment.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TMonitoringEquipment.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.web.domain.BasePojo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -52,5 +53,12 @@
     @ApiModelProperty(value = "监控链接")
     @TableField("url_link")
     private String urlLink;
+    @ApiModelProperty(value = "状态 1=正常 0=离线")
+    @TableField("status")
+    private Integer status;
+    @ApiModelProperty(value = "故障时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField("faultTime")
+    private LocalDateTime faultTime;
 
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
index 4f5b66b..f8cfe72 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
@@ -35,7 +35,7 @@
     private TokenService tokenService;
     @Override
     public Map<String, Object> wxLogin(AppletUserDecodeData appletUserDecodeData) {
-        // 通过手机号查询用户,是否已存在手动导入用户
+        // 通过手机号查询用户,是否已存在手动导入用户,包含支付宝用户
         TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
                 .eq(TAppUser::getPhone, appletUserDecodeData.getPhoneNumber())
                 .isNull(TAppUser::getWxOpenid)
@@ -62,7 +62,7 @@
 
     @Override
     public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response, AlipayUserUserinfoShareResponse userInfo) {
-        // 通过手机号查询用户,是否已存在手动导入用户
+        // 通过手机号查询用户,是否已存在手动导入用户,包含微信用户
         TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
                 .eq(TAppUser::getPhone, userInfo.getMobile())
                 .isNull(TAppUser::getAliOpenid)
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
index 0dd482f..6efbe5e 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -2,6 +2,8 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+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.model.Site;
 import com.ruoyi.chargingPile.api.model.TChargingGun;
@@ -20,9 +22,12 @@
 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.security.service.TokenService;
 import com.ruoyi.common.security.utils.SecurityUtils;
+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 org.springframework.stereotype.Service;
@@ -30,10 +35,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 /**
  * @author zhibing.pu
@@ -59,7 +61,13 @@
 	
 	@Resource
 	private RoleSiteClient roleSiteClient;
-	
+	@Resource
+	private TokenService tokenService;
+	@Resource
+	private AppUserClient appUserClient;
+	@Resource
+	private VipClient vipClient;
+
 	
 	
 	/**
@@ -217,8 +225,21 @@
 
 	@Override
 	public PageInfo<SiteVO> pageList(SiteQuery query) {
+		// 获取当前登录用户id
+		Long userId = tokenService.getLoginUserApplet().getUserId();
+		// 根据id查询用户信息
+		TAppUser appUser = appUserClient.getUserById(userId).getData();
 		PageInfo<SiteVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
 		List<SiteVO> list = this.baseMapper.pageList(query,pageInfo);
+		if(Objects.nonNull(appUser) && Objects.nonNull(appUser.getVipId())){
+			// 查询会员信息
+			TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
+			if(Objects.nonNull(vip) && vip.getType() == 2){
+				list.forEach(item -> {
+					item.setVipElectrovalence(vip.getDiscount().multiply(item.getElectrovalence()));
+				});
+			}
+		}
 		pageInfo.setRecords(list);
 		return pageInfo;
 	}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
index 8011eb8..ea793af 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
@@ -2,6 +2,8 @@
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.TAppUser;
 import com.ruoyi.chargingPile.api.model.TAccountingStrategy;
 import com.ruoyi.chargingPile.api.model.TAccountingStrategyDetail;
 import com.ruoyi.chargingPile.api.vo.StrategyPriceVO;
@@ -10,11 +12,13 @@
 import com.ruoyi.chargingPile.mapper.TAccountingStrategyMapper;
 import com.ruoyi.chargingPile.service.TAccountingStrategyDetailService;
 import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.other.api.domain.TVip;
 import com.ruoyi.other.api.feignClient.VipClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalTime;
 import java.util.ArrayList;
@@ -36,7 +40,10 @@
     private TAccountingStrategyMapper accountingStrategyMapper;
     @Autowired
     private VipClient vipClient;
-
+    @Autowired
+    private TokenService tokenService;
+    @Autowired
+    private AppUserClient appUserClient;
     @Override
     public List<TAccountingStrategyDetailVO> queryAccountingStrategyDetailByStrategyId(Integer strategyId) {
         return this.baseMapper.queryAccountingStrategyDetailByStrategyId(strategyId);
@@ -51,18 +58,40 @@
             throw new ServiceException("未查询到计费策略");
         }
         List<TAccountingStrategyDetailVO> list = this.queryAccountingStrategyDetailByStrategyId(accountingStrategy.getId());
-        // 获取当前时间段的计费策略明细
-        TAccountingStrategyDetailVO accountingStrategyDetailVO = list.stream().filter(detail -> detail.getStartTime().compareTo(LocalTime.now().toString()) <= 0 && detail.getEndTime().compareTo(LocalTime.now().toString()) >= 0)
-                .findFirst().orElseThrow(() -> new ServiceException("当前时间段未查询到计费策略明细"));
-        accountingStrategyDetailVO.setDiscount(accountingStrategy.getDiscount());
-        // 获取后一次的计费策略明细
-        TAccountingStrategyDetailVO accountingStrategyDetailNext = list.stream().filter(detail -> detail.getStartTime().compareTo(accountingStrategyDetailVO.getEndTime()) == 0)
-                .findFirst().orElseThrow(() -> new ServiceException("未查询到下一时间段的计费策略明细"));
-        accountingStrategyDetailNext.setDiscount(accountingStrategy.getDiscount());
-        list = new ArrayList<>();
-        list.add(accountingStrategyDetailVO);
-        list.add(accountingStrategyDetailNext);
-        return list;
+        // 获取当前登录用户id
+        Long userId = tokenService.getLoginUserApplet().getUserId();
+        // 根据id查询用户信息
+        TAppUser appUser = appUserClient.getUserById(userId).getData();
+        if(Objects.nonNull(appUser) && Objects.nonNull(appUser.getVipId())){
+            // 查询会员信息
+            TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
+            TAccountingStrategyDetailVO accountingStrategyDetailVO;
+            TAccountingStrategyDetailVO accountingStrategyDetailNext;
+            if(Objects.nonNull(vip) && vip.getType() == 2){
+                // 获取当前时间段的计费策略明细
+                accountingStrategyDetailVO = list.stream().filter(detail -> detail.getStartTime().compareTo(LocalTime.now().toString()) <= 0 && detail.getEndTime().compareTo(LocalTime.now().toString()) >= 0)
+                        .findFirst().orElseThrow(() -> new ServiceException("当前时间段未查询到计费策略明细"));
+                accountingStrategyDetailVO.setDiscount(accountingStrategyDetailVO.getElectrovalence().add(accountingStrategyDetailVO.getServiceCharge()).multiply(vip.getDiscount()));
+                // 获取后一次的计费策略明细
+                accountingStrategyDetailNext = list.stream().filter(detail -> detail.getStartTime().compareTo(accountingStrategyDetailVO.getEndTime()) == 0)
+                        .findFirst().orElseThrow(() -> new ServiceException("未查询到下一时间段的计费策略明细"));
+                accountingStrategyDetailNext.setDiscount(accountingStrategyDetailNext.getElectrovalence().add(accountingStrategyDetailNext.getServiceCharge()).multiply(vip.getDiscount()));
+            }else {
+                // 获取当前时间段的计费策略明细
+                accountingStrategyDetailVO = list.stream().filter(detail -> detail.getStartTime().compareTo(LocalTime.now().toString()) <= 0 && detail.getEndTime().compareTo(LocalTime.now().toString()) >= 0)
+                        .findFirst().orElseThrow(() -> new ServiceException("当前时间段未查询到计费策略明细"));
+                accountingStrategyDetailVO.setDiscount(accountingStrategyDetailVO.getElectrovalence().add(accountingStrategyDetailVO.getServiceCharge()).multiply(accountingStrategy.getDiscount()));
+                // 获取后一次的计费策略明细
+                accountingStrategyDetailNext = list.stream().filter(detail -> detail.getStartTime().compareTo(accountingStrategyDetailVO.getEndTime()) == 0)
+                        .findFirst().orElseThrow(() -> new ServiceException("未查询到下一时间段的计费策略明细"));
+                accountingStrategyDetailNext.setDiscount(accountingStrategyDetailNext.getElectrovalence().add(accountingStrategyDetailNext.getServiceCharge()).multiply(accountingStrategy.getDiscount()));
+            }
+            list = new ArrayList<>();
+            list.add(accountingStrategyDetailVO);
+            list.add(accountingStrategyDetailNext);
+            return list;
+        }
+        return new ArrayList<>();
     }
 
     @Override
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TMonitoringEquipmentMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TMonitoringEquipmentMapper.xml
index ace731e..681c9a0 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TMonitoringEquipmentMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TMonitoringEquipmentMapper.xml
@@ -10,17 +10,19 @@
         <result column="parking_lot_id" property="parkingLotId" />
         <result column="location" property="location" />
         <result column="url_link" property="urlLink" />
+        <result column="status" property="status" />
+        <result column="faultTime" property="faultTime" />
         <result column="create_time" property="createTime" />
         <result column="del_flag" property="delFlag" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, `name`, code, parking_lot_id, location, url_link, create_time, del_flag
+        id, `name`, code, parking_lot_id, location, url_link,status,faultTime, create_time, del_flag
     </sql>
     <select id="pageList" resultType="com.ruoyi.chargingPile.api.vo.TMonitoringEquipmentVO">
         SELECT
-        tme.id, tme.`name`, tme.code, tme.parking_lot_id, tme.location, tme.url_link, tme.create_time, tme.del_flag, tpl.name AS parkingLotName
+        tme.id, tme.`name`, tme.code, tme.parking_lot_id, tme.location, tme.url_link,tme.status,tme.faultTime, tme.create_time, tme.del_flag, tpl.name AS parkingLotName
         FROM t_monitoring_equipment tme
         LEFT JOIN t_parking_lot tpl ON tme.parking_lot_id = tpl.id
         <where>

--
Gitblit v1.7.1