From 76bd7b4ea56c67feab076399ca1a8d28798d2acf Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期五, 01 十一月 2024 17:22:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/VipClient.java                                       |    5 +
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java                            |   13 +++-
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java                                       |    5 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java                         |   90 +++++++++++++++++++----------
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/VipFallbackFactory.java                                  |    7 ++
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java                                 |    2 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java |   18 +++++
 7 files changed, 103 insertions(+), 37 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java
index 7507994..37afe31 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/SiteInfoVO.java
@@ -27,7 +27,7 @@
     @ApiModelProperty(value = "开通会员预计可省")
     private BigDecimal money;
     @ApiModelProperty(value = "额外赠送优惠券X张")
-    private Integer couponCount;
+    private Integer couponCount = 0;
     @ApiModelProperty(value = "超时占位费说明")
     private String spaceChargeExplain;
     @ApiModelProperty(value = "添加车辆最高可得积分 车辆信息为空 展示提示语")
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/VipFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/VipFallbackFactory.java
index 275a7ff..7326756 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/VipFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/VipFallbackFactory.java
@@ -10,6 +10,8 @@
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * 会员服务降级处理
  * 
@@ -41,6 +43,11 @@
             }
 
             @Override
+            public R<List<TVip>> getVipList() {
+                return R.fail("查询会员集合失败:" + throwable.getMessage());
+            }
+
+            @Override
             public R<TVip> getInfo1(Integer id) {
                 return R.fail("根据会员id 获取会员信息:" + throwable.getMessage());
             }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/VipClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/VipClient.java
index e958ad7..c0a07e8 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/VipClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/VipClient.java
@@ -12,6 +12,8 @@
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.List;
+
 /**
  * 会员服务
  * @author ruoyi
@@ -41,4 +43,7 @@
 
     @PostMapping(value = "/t-app-user/user/give/vip")
     R giveVip(@RequestBody GiveVipDto giveVipDto);
+
+    @GetMapping(value = "/vip/getVipList")
+    R<List<TVip>> getVipList();
 }
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 da2a033..879ca16 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
@@ -46,17 +46,18 @@
         TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
                 .eq(TAppUser::getPhone, appletUserDecodeData.getPhoneNumber())
                 .isNull(TAppUser::getWxOpenid)
+                .eq(TAppUser::getStatus,1)
                 .last("LIMIT 1"));
         if(Objects.isNull(appUser)){
             // 先使用openId和当前手机号进行查询
             appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
                     .eq(TAppUser::getWxOpenid, appletUserDecodeData.getOpenId())
                     .eq(TAppUser::getPhone, appletUserDecodeData.getPhoneNumber())
+                    .eq(TAppUser::getStatus,1)
                     .last("LIMIT 1"));
             if(Objects.isNull(appUser)){
                 appUser = new TAppUser();
                 appUser.setPhone(appletUserDecodeData.getPhoneNumber());
-                appUser.setInviteUserId(inviteUserId);
             }
         }
         if(Objects.nonNull(appUser.getStatus())){
@@ -71,7 +72,9 @@
                     break;
             }
         }
-
+        if(Objects.nonNull(inviteUserId)){
+            appUser.setInviteUserId(inviteUserId);
+        }
         appUser.setAvatar(StringUtils.hasLength(appUser.getAvatar())?appUser.getAvatar():"http://221.182.45.100:8090/2024-10-26/logo.png");
         appUser.setName(StringUtils.hasLength(appUser.getName())?appUser.getName():RptUtils.around(appletUserDecodeData.getPhoneNumber(),3,4));
         appUser.setCity(appletUserDecodeData.getCity());
@@ -90,17 +93,18 @@
         TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
                 .eq(TAppUser::getPhone, phone)
                 .isNull(TAppUser::getAliOpenid)
+                .eq(TAppUser::getStatus,1)
                 .last("LIMIT 1"));
         if(Objects.isNull(appUser)){
             // 先使用openId和当前手机号进行查询
             appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
                     .eq(TAppUser::getAliOpenid, response.getOpenId())
                     .eq(TAppUser::getPhone, phone)
+                    .eq(TAppUser::getStatus,1)
                     .last("LIMIT 1"));
             if(Objects.isNull(appUser)){
                 appUser = new TAppUser();
                 appUser.setPhone(phone);
-                appUser.setInviteUserId(inviteUserId);
             }
         }
         if(Objects.nonNull(appUser.getStatus())){
@@ -115,6 +119,9 @@
                     break;
             }
         }
+        if(Objects.nonNull(inviteUserId)){
+            appUser.setInviteUserId(inviteUserId);
+        }
         appUser.setAliOpenid(response.getOpenId());
         appUser.setAvatar(StringUtils.hasLength(appUser.getAvatar())?appUser.getAvatar():"http://221.182.45.100:8090/2024-10-26/logo.png");
         appUser.setName(StringUtils.hasLength(appUser.getName())?appUser.getName():RptUtils.around(phone,3,4));
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
index 06a4e3f..1a0fb15 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
@@ -1,10 +1,16 @@
 package com.ruoyi.chargingPile.controller;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
 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.feignClient.AppUserVipDetailClient;
 import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.account.api.model.TAppUserVipDetail;
+import com.ruoyi.account.api.vo.GetAppUserVipDetail;
 import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
 import com.ruoyi.chargingPile.api.feignClient.ParkingLotClient;
 import com.ruoyi.chargingPile.api.model.*;
@@ -41,6 +47,7 @@
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -100,7 +107,8 @@
 	private TokenService tokenService;
 	@Resource
 	private AppUserClient appUserClient;
-
+	@Resource
+	private AppUserVipDetailClient vipDetailClient;
 
 	/**
 	 * 根据站点id 查询所有充电桩
@@ -132,23 +140,26 @@
 			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.getServiceCharge().multiply(byId1.getDiscount()).add(tAccountingStrategyDetail.getElectrovalence())).setScale(4, BigDecimal.ROUND_HALF_UP));
-				}else{
-					// 获取当前登录用户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());
-						}
+				// 获取当前登录用户id
+				Long userId = tokenService.getLoginUserApplet().getUserId();
+				// 根据id查询用户信息
+				TAppUser appUser = appUserClient.getUserById(userId).getData();
+				if(Objects.nonNull(appUser)){
+//					TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
+					GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
+					getAppUserVipDetail.setAppUserId(userId);
+					getAppUserVipDetail.setVipId(appUser.getVipId());
+					R<TAppUserVipDetail> appUserVipDetail = vipDetailClient.getAppUserVipDetail(getAppUserVipDetail);
+					TAppUserVipDetail data1 = appUserVipDetail.getData();
+					String vipJson = data1.getVipJson();
+					TVip vip = JSON.parseObject(vipJson, TVip.class);
+					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());
+						siteInfoVO.setVipElectrovalence((tAccountingStrategyDetail.getServiceCharge().multiply(byId1.getDiscount()).add(tAccountingStrategyDetail.getElectrovalence())).setScale(4, BigDecimal.ROUND_HALF_UP));
 					}
+				}else {
+					siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence().add(tAccountingStrategyDetail.getServiceCharge()).setScale(4, BigDecimal.ROUND_HALF_UP));
 				}
 			}
 		}
@@ -177,26 +188,41 @@
 			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.getServiceCharge().multiply(byId1.getDiscount()).add(tAccountingStrategyDetail.getElectrovalence())).setScale(4, BigDecimal.ROUND_HALF_UP));
-				}else{
-					// 获取当前登录用户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());
+				// 获取当前登录用户id
+				Long userId = tokenService.getLoginUserApplet().getUserId();
+				// 根据id查询用户信息
+				TAppUser appUser = appUserClient.getUserById(userId).getData();
+				if(Objects.nonNull(appUser)){
+//					TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
+					GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
+					getAppUserVipDetail.setAppUserId(userId);
+					getAppUserVipDetail.setVipId(appUser.getVipId());
+					R<TAppUserVipDetail> appUserVipDetail = vipDetailClient.getAppUserVipDetail(getAppUserVipDetail);
+					TAppUserVipDetail data1 = appUserVipDetail.getData();
+					String vipJson = data1.getVipJson();
+					TVip vip = JSON.parseObject(vipJson, TVip.class);
+					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.getServiceCharge().multiply(byId1.getDiscount()).add(tAccountingStrategyDetail.getElectrovalence())).setScale(4, BigDecimal.ROUND_HALF_UP));
 					}
+				}else {
+					siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence().add(tAccountingStrategyDetail.getServiceCharge()).setScale(4, BigDecimal.ROUND_HALF_UP));
 				}
 			}
 		}
+		List<TVip> vips = vipClient.getVipList().getData();
+		if(!CollectionUtils.isEmpty(vips)){
+			TVip tVip = vips.get(0);
+			JSONArray objects = JSONArray.parseArray(tVip.getCoupon());
+			Integer num = 0;
+			for (Object object : objects) {
+				JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(object));
+				Integer number1 = jsonObject.getInteger("number");
+				num += number1;
+			}
+			siteInfoVO.setCouponCount(num);
+		}
 		siteInfoVO.setChargingPileId(one.getId());
 		siteInfoVO.setName(byId.getName());
 		siteInfoVO.setNumber(one.getNumber().toString());
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 57d3f7e..ec6ab63 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
@@ -1,9 +1,13 @@
 package com.ruoyi.chargingPile.service.impl;
 
+import com.alibaba.fastjson2.JSON;
 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.feignClient.AppUserVipDetailClient;
 import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.account.api.model.TAppUserVipDetail;
+import com.ruoyi.account.api.vo.GetAppUserVipDetail;
 import com.ruoyi.chargingPile.api.model.Site;
 import com.ruoyi.chargingPile.api.model.TAccountingStrategy;
 import com.ruoyi.chargingPile.api.model.TAccountingStrategyDetail;
@@ -15,6 +19,7 @@
 import com.ruoyi.chargingPile.service.ISiteService;
 import com.ruoyi.chargingPile.service.TAccountingStrategyDetailService;
 import com.ruoyi.chargingPile.service.TChargingGunService;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.security.service.TokenService;
@@ -52,6 +57,8 @@
     private TChargingGunService chargingGunService;
     @Autowired
     private AppUserClient appUserClient;
+    @Resource
+    private AppUserVipDetailClient vipDetailClient;
     @Override
     public List<TAccountingStrategyDetailVO> queryAccountingStrategyDetailByStrategyId(Integer strategyId) {
         return this.baseMapper.queryAccountingStrategyDetailByStrategyId(strategyId);
@@ -72,7 +79,16 @@
         TAppUser appUser = appUserClient.getUserById(userId).getData();
         if(Objects.nonNull(appUser)){
             // 查询会员信息
-            TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
+//            TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
+
+            GetAppUserVipDetail getAppUserVipDetail = new GetAppUserVipDetail();
+            getAppUserVipDetail.setAppUserId(userId);
+            getAppUserVipDetail.setVipId(appUser.getVipId());
+            R<TAppUserVipDetail> appUserVipDetail = vipDetailClient.getAppUserVipDetail(getAppUserVipDetail);
+            TAppUserVipDetail data1 = appUserVipDetail.getData();
+            String vipJson = data1.getVipJson();
+            TVip vip = JSON.parseObject(vipJson, TVip.class);
+
             TAccountingStrategyDetailVO accountingStrategyDetailVO;
             TAccountingStrategyDetailVO accountingStrategyDetailNext;
             // 获取当前时间段的计费策略明细
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
index 2c4166f..8ebbd2f 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
@@ -93,6 +93,11 @@
         return R.ok(vipService.getById(id));
     }
 
+    @GetMapping(value = "/getVipList")
+    public R<List<TVip>> getVipList(){
+        return  R.ok(vipService.lambdaQuery().eq(TVip::getReveal, 1).list());
+    }
+
     /**
      * 远程调用
      * @param id

--
Gitblit v1.7.1