From 6ce614e5676dbbef672a81dc78349f3c4ff853bb Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 26 十月 2024 16:29:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java                         |    9 +++-
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/RptUtils.java                                            |   33 ++++++++++++++++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java |   44 ++++++++++++++++------
 3 files changed, 72 insertions(+), 14 deletions(-)

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 72656e7..bd17572 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
@@ -11,6 +11,7 @@
 import com.ruoyi.account.mapper.TAppUserMapper;
 import com.ruoyi.account.service.TAppUserService;
 import com.ruoyi.account.service.TInviteUserService;
+import com.ruoyi.account.util.RptUtils;
 import com.ruoyi.account.wx.model.WeixinProperties;
 import com.ruoyi.account.wx.pojo.AppletUserDecodeData;
 import com.ruoyi.common.core.exception.ServiceException;
@@ -18,6 +19,7 @@
 import com.ruoyi.system.api.model.LoginUserApplet;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 import org.springframework.web.client.RestTemplate;
 
 import java.util.HashMap;
@@ -69,9 +71,10 @@
                     break;
             }
         }
-        appUser.setAvatar(appletUserDecodeData.getAvatarUrl());
+
+        appUser.setAvatar(StringUtils.hasLength(appletUserDecodeData.getAvatarUrl())?appletUserDecodeData.getAvatarUrl():"http://221.182.45.100:8090/2024-10-26/logo.png");
+        appUser.setName(StringUtils.hasLength(appletUserDecodeData.getNickName())?appletUserDecodeData.getNickName():RptUtils.around(appletUserDecodeData.getPhoneNumber(),3,4));
         appUser.setCity(appletUserDecodeData.getCity());
-        appUser.setName(appletUserDecodeData.getNickName());
         appUser.setProvince(appletUserDecodeData.getProvince());
         appUser.setWxOpenid(appletUserDecodeData.getOpenId());
         this.saveOrUpdate(appUser);
@@ -113,6 +116,8 @@
             }
         }
         appUser.setAliOpenid(response.getOpenId());
+        appUser.setAvatar("http://221.182.45.100:8090/2024-10-26/logo.png");
+        appUser.setName(RptUtils.around(phone,3,4));
         this.saveOrUpdate(appUser);
         if(Objects.nonNull(inviteUserId)){
             inviteUserService.saveInviteUser(appUser.getId(), inviteUserId);
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/RptUtils.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/RptUtils.java
new file mode 100644
index 0000000..41e207a
--- /dev/null
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/RptUtils.java
@@ -0,0 +1,33 @@
+package com.ruoyi.account.util;
+
+/**
+ * 脱敏工具类
+ */
+public class RptUtils {
+      private static final String SYMBOL = "*";
+
+     /**
+      *  脱敏
+      * @param str 待脱敏字符串
+      * @param left 左边保留多少位
+      * @param right 右边保留多少位
+      * @return 脱敏结果,除左右外,其余字符将被替换为*
+      */
+     public static String around(String str, int left, int right){
+         if (str == null || (str.length() < left + right +1)){
+             return str;
+         }
+         String regex = String.format("(?<=\\w{%d})\\w(?=\\w{%d})", left, right);
+         return str.replaceAll(regex, SYMBOL);
+     }
+
+     /**
+      * 正则表达式实现金额数据脱敏
+      * @param money
+      * @return
+      */
+     public static String getMoney(String money){
+         //保留0个数到0个结束
+         return around(money,0,0);
+     }
+ }
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java
index 3bd8ac6..9d81853 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java
@@ -10,12 +10,14 @@
 import com.ruoyi.chargingPile.service.*;
 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.core.web.domain.AjaxResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.time.LocalTime;
 import java.util.List;
 import java.util.Objects;
 
@@ -100,10 +102,16 @@
     public R<TAccountingStrategyDetail> getDetailBySiteId(@RequestParam("siteId") Integer siteId){
         Site site = siteService.getById(siteId);
         TAccountingStrategy accountingStrategy = accountingStrategyService.getById(site.getAccountingStrategyId());
-        TAccountingStrategyDetail one = accountingStrategyDetailService.getOne(Wrappers.<TAccountingStrategyDetail>lambdaQuery()
-                .eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategy.getId())
-                .last(" and DATE_FORMAT(now(), '%H:%i') between start_time and end_time"));
-        return R.ok(one);
+        List<TAccountingStrategyDetail> list = accountingStrategyDetailService.list(Wrappers.<TAccountingStrategyDetail>lambdaQuery()
+                .eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategy.getId()));
+        list.stream().filter(item -> "00:00".equals(item.getEndTime())).forEach(item -> item.setEndTime("23:59:59"));
+        for (TAccountingStrategyDetail accountingStrategyDetail : list) {
+            if(DateUtils.string2LocalTime(accountingStrategyDetail.getStartTime() + ":00").compareTo(LocalTime.now()) <= 0
+                    && DateUtils.string2LocalTime(accountingStrategyDetail.getEndTime() + ("23:59:59".equals(accountingStrategyDetail.getEndTime())?"":":00")).compareTo(LocalTime.now()) > 0){
+                return R.ok(accountingStrategyDetail);
+            }
+        }
+        return R.ok();
     }
     /**
      * 通过桩id查询当前时段使用的策略明细
@@ -123,19 +131,31 @@
                 .eq(TChargingGun::getChargingPileId, chargingPile.getId()).eq(TChargingGun::getDelFlag, 0)
                 .last("LIMIT 1"));
         TAccountingStrategy accountingStrategy = accountingStrategyService.getById(chargingGun.getAccountingStrategyId());
-        TAccountingStrategyDetail one;
+        TAccountingStrategyDetail one = null;
         if(Objects.nonNull(accountingStrategy)){
-            one = accountingStrategyDetailService.getOne(Wrappers.<TAccountingStrategyDetail>lambdaQuery()
-                    .eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategy.getId())
-                    .last(" and DATE_FORMAT(now(), '%H:%i') between start_time and end_time"));
+            List<TAccountingStrategyDetail> list = accountingStrategyDetailService.list(Wrappers.<TAccountingStrategyDetail>lambdaQuery()
+                    .eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategy.getId()));
+            list.stream().filter(item -> "00:00".equals(item.getEndTime())).forEach(item -> item.setEndTime("23:59:59"));
+            for (TAccountingStrategyDetail accountingStrategyDetail : list) {
+                if(DateUtils.string2LocalTime(accountingStrategyDetail.getStartTime() + ":00").compareTo(LocalTime.now()) <= 0
+                        && DateUtils.string2LocalTime(accountingStrategyDetail.getEndTime() + ("23:59:59".equals(accountingStrategyDetail.getEndTime())?"":":00")).compareTo(LocalTime.now()) > 0){
+                    return R.ok(accountingStrategyDetail);
+                }
+            }
         }else {
             Site site = siteService.getById(chargingPile.getSiteId());
             accountingStrategy = accountingStrategyService.getById(site.getAccountingStrategyId());
-            one = accountingStrategyDetailService.getOne(Wrappers.<TAccountingStrategyDetail>lambdaQuery()
-                    .eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategy.getId())
-                    .last(" and DATE_FORMAT(now(), '%H:%i') between start_time and end_time"));
+            List<TAccountingStrategyDetail> list = accountingStrategyDetailService.list(Wrappers.<TAccountingStrategyDetail>lambdaQuery()
+                    .eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategy.getId()));
+            list.stream().filter(item -> "00:00".equals(item.getEndTime())).forEach(item -> item.setEndTime("23:59:59"));
+            for (TAccountingStrategyDetail accountingStrategyDetail : list) {
+                if(DateUtils.string2LocalTime(accountingStrategyDetail.getStartTime() + ":00").compareTo(LocalTime.now()) <= 0
+                        && DateUtils.string2LocalTime(accountingStrategyDetail.getEndTime() + ("23:59:59".equals(accountingStrategyDetail.getEndTime())?"":":00")).compareTo(LocalTime.now()) > 0){
+                    return R.ok(accountingStrategyDetail);
+                }
+            }
         }
-        return R.ok(one);
+        return R.ok();
     }
     /**
      * 校验充电桩计费模版是否准确

--
Gitblit v1.7.1