From 628450ded3b738f62f68bc2f7cb90804331eb201 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 18 二月 2025 15:10:59 +0800
Subject: [PATCH] 修复上传文件漏洞

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java |   79 +++++++++++++++++++++++++++++++++++----
 1 files changed, 71 insertions(+), 8 deletions(-)

diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
index 2ea18aa..5178dc2 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -52,6 +52,7 @@
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.client.RestTemplate;
@@ -63,6 +64,7 @@
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -84,9 +86,8 @@
     private TAppUserService appUserService;
     @Resource
     private TAppUserTagService appUserTagService;
-    @Autowired
+    @Resource
     private OrderClient orderClient;
-
     @Resource
     private TAppUserVipDetailService tAppUserVipDetailService;
     @Resource
@@ -121,6 +122,9 @@
     private TAppUserCarService carService;
     @Resource
     private IntegralRuleClient integralRuleClient;
+    
+    @Resource
+    private RedisTemplate redisTemplate;
 
 
     @Resource
@@ -716,6 +720,12 @@
     @GetMapping(value = "/user/set/avatar")
     public R avatar(String url) {
         Long userId = tokenService.getLoginUserApplet().getUserId();
+        String fileName = redisTemplate.opsForValue().get("file:" + userId).toString();
+        String substring = url.substring(url.lastIndexOf("/") + 1);
+        if(StringUtils.isEmpty(fileName) || fileName.equals(substring)){
+            return R.fail("请重新上传头像");
+        }
+    
         TAppUser byId = appUserService.getById(userId);
         byId.setAvatar(url);
         appUserService.updateById(byId);
@@ -835,6 +845,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")
@@ -926,6 +981,10 @@
         TAppUser appUser = appUserService.getById(id);
         return R.ok(appUser);
     }
+    @PostMapping(value = "/user/getAllUser")
+    public R<List<TAppUser>> getAllUser(){
+        return R.ok(appUserService.list(null));
+    }
 
 
     /**
@@ -967,14 +1026,10 @@
     public R sign() {
         LoginUserApplet loginUserApplet = tokenService.getLoginUserApplet();
         Long userId = loginUserApplet.getUserId();
-
         TAppUser byId = appUserService.getById(userId);
-
-
         if (signService.lambdaQuery().eq(TAppUserSign::getSignDay, LocalDate.now()).eq(TAppUserSign::getAppUserId, userId).count()>0){
             return R.fail("今日已签到");
         }
-
         //判断当前生效的vipDetail
         TAppUserVipDetail one = tAppUserVipDetailService.lambdaQuery().le(TAppUserVipDetail::getStartTime, LocalDateTime.now()).ge(TAppUserVipDetail::getEndTime, LocalDateTime.now()).eq(TAppUserVipDetail::getAppUserId, userId).last("limit 1").one();
         boolean doubleVip = false;
@@ -1284,8 +1339,16 @@
                 return R.ok(result3);
         }
     }
-    
-    
+
+
+    public static void main(String[] args) {
+//        String reqStr1 = MsgUtil.codeMsg("19983174515", "123456");
+//        String result1 = HttpUtils.post(MsgConstants.SEND_URL, reqStr1);
+
+        String reqStr3 = MsgUtil.faultMsg("18398968484", "长河服务区充电站(遂", "123");
+        String result3 = HttpUtils.post(MsgConstants.SEND_URL, reqStr3);
+        System.err.println(result3);
+    }
     @PostMapping(value = "/user/logOut")
     @ApiOperation(value = "退出登录", tags = {"小程序-个人中心"})
     public AjaxResult logOut(){

--
Gitblit v1.7.1