Browse Source

优化不安全的语法

tsurumure 10 months ago
parent
commit
18b0769e9b
22 changed files with 69 additions and 30 deletions
  1. 2 1
      pom.xml
  2. 1 0
      src/main/java/com/backendsys/aspect/QueryNullCheckAspect.java
  3. 1 1
      src/main/java/com/backendsys/controller/v1/B2c/B2cOrderController.java
  4. 1 1
      src/main/java/com/backendsys/controller/v1/Systems/SysActuatorController.java
  5. 1 0
      src/main/java/com/backendsys/controller/v1/TestController.java
  6. 9 0
      src/main/java/com/backendsys/dao/System/SysUserDao.java
  7. 9 0
      src/main/java/com/backendsys/dao/System/SysUserInfoDao.java
  8. 2 2
      src/main/java/com/backendsys/mapper/System/SysDictionaryMapper.java
  9. 5 5
      src/main/java/com/backendsys/service/v1/Ai/AiGenerateVideoServiceImpl.java
  10. 5 2
      src/main/java/com/backendsys/service/v1/Ai/Aizn/AiznGoodServiceImpl.java
  11. 4 4
      src/main/java/com/backendsys/service/v1/Ai/Aizn/AiznImageIncantationServiceImpl.java
  12. 2 1
      src/main/java/com/backendsys/service/v1/Ai/Aizn/AiznImageTaskServiceImpl.java
  13. 5 2
      src/main/java/com/backendsys/service/v1/Ali/AliDashscopeServiceImpl.java
  14. 4 1
      src/main/java/com/backendsys/service/v1/SDKService/SDKTencent/SDKTencentAiServiceImpl.java
  15. 1 1
      src/main/java/com/backendsys/service/v1/System/SysDictionaryService.java
  16. 2 2
      src/main/java/com/backendsys/service/v1/System/SysDictionaryServiceImpl.java
  17. 7 3
      src/main/java/com/backendsys/service/v1/System/SysUserServiceImpl.java
  18. 1 0
      src/main/java/com/backendsys/utils/LanguageUtil.java
  19. 1 0
      src/main/java/com/backendsys/utils/ListUtil.java
  20. 1 0
      src/main/java/com/backendsys/utils/MapUtil.java
  21. 1 0
      src/main/java/com/backendsys/utils/UserUtils.java
  22. 4 4
      src/main/java/com/backendsys/utils/response/PageInfoResult.java

+ 2 - 1
pom.xml

@@ -448,7 +448,8 @@
                     <target>${java.version}</target>
                     <encoding>${project.build.sourceEncoding}</encoding>
                     <compilerArgs>
-                        <arg>-Xlint:deprecation</arg> <!-- 启用过时 API 警告 -->
+                        <!-- <arg>-Xlint:deprecation</arg> -->
+                        <!-- <arg>-Xlint:unchecked</arg> -->
                     </compilerArgs>
                 </configuration>
             </plugin>

+ 1 - 0
src/main/java/com/backendsys/aspect/QueryNullCheckAspect.java

@@ -38,6 +38,7 @@ public class QueryNullCheckAspect {
      *
      * 注意:入参必须是实体类 (除 GET 外,POST/PUT/DELETE 需要加 @RequestBody)
      */
+    @SuppressWarnings({"rawtypes", "unchecked"})
     @Around("@annotation(queryNullCheck)")
     public Object handleQueryNullCheck(ProceedingJoinPoint joinPoint, QueryNullCheck queryNullCheck) throws Throwable {
         Object[] args = joinPoint.getArgs();

+ 1 - 1
src/main/java/com/backendsys/controller/v1/B2c/B2cOrderController.java

@@ -169,7 +169,7 @@ public class B2cOrderController {
         // [判断] 购买数量 不大于 商品库存,否则报错
         for (Map<String, Object> sku : querySpecSkuList) {
             if ((Integer) sku.get("quantity") > (Integer) sku.get("stock")) {
-                List<Map<String, Object>> specs = (List<Map<String, Object>>) sku.get("specs");
+//                List<Map<String, Object>> specs = (List<Map<String, Object>>) sku.get("specs");
                 // [格式化] 规格字符串
                 return Result.error(ResultEnum.INTERNAL_ERROR.getCode(), "「" + sku.get("good_name") + "」「" + sku.get("specs_string") + "」库存不足", sku);
             }

+ 1 - 1
src/main/java/com/backendsys/controller/v1/Systems/SysActuatorController.java

@@ -29,7 +29,7 @@
 //
 //        @GetMapping("/api/public/system/sysDictionary")
 //        public Result getDictionary(T data) {
-//            return Result.success(sysDictionaryService.queryDictionary(data));
+//            return Result.success(sysDictionaryService.queryDictionary());
 //        }
 //    }
 //

+ 1 - 0
src/main/java/com/backendsys/controller/v1/TestController.java

@@ -57,6 +57,7 @@ import com.tencentcloudapi.common.exception.TencentCloudSDKException;
 
 @RestController
 @RequestMapping("/api/test")
+@SuppressWarnings({"rawtypes", "unchecked"})
 public class TestController {
 
 

+ 9 - 0
src/main/java/com/backendsys/dao/System/SysUserDao.java

@@ -0,0 +1,9 @@
+package com.backendsys.dao.System;
+
+import com.backendsys.entity.v2.System.SysUser;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SysUserDao extends BaseMapper<SysUser> {
+}

+ 9 - 0
src/main/java/com/backendsys/dao/System/SysUserInfoDao.java

@@ -0,0 +1,9 @@
+package com.backendsys.dao.System;
+
+import com.backendsys.entity.v2.System.SysUserInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SysUserInfoDao extends BaseMapper<SysUserInfo> {
+}

+ 2 - 2
src/main/java/com/backendsys/mapper/System/SysDictionaryMapper.java

@@ -6,6 +6,6 @@ import java.util.List;
 import java.util.Map;
 
 @Mapper
-public interface SysDictionaryMapper<T> {
-    List<Map<String, Object>> queryDictionary(T data);
+public interface SysDictionaryMapper {
+    List<Map<String, Object>> queryDictionary();
 }

+ 5 - 5
src/main/java/com/backendsys/service/v1/Ai/AiGenerateVideoServiceImpl.java

@@ -69,7 +69,7 @@ public class AiGenerateVideoServiceImpl implements AiGenerateVideoService {
             aiGenerateVideoDTO.setJob_id(job_id);
             aiGenerateVideoDTO.setUser_id(user_id);
             aiGenerateVideoDTO.setJob_status("1");
-            aiGenerateVideoDTO.setResult_fail_reason((String) resp.get("error_msg"));
+            aiGenerateVideoDTO.setResult_fail_reason(Convert.toStr(resp.get("error_msg")));
             aiGenerateVideoMapper.updateAiGenerateVideo(aiGenerateVideoDTO);
         }
 
@@ -95,7 +95,7 @@ public class AiGenerateVideoServiceImpl implements AiGenerateVideoService {
 
             System.out.println("setJob_id: " + MapUtil.get(resp, "data.jobId"));
 
-            aiGenerateVideoDTO.setJob_id((Long) MapUtil.get(resp, "data.jobId"));
+            aiGenerateVideoDTO.setJob_id(Convert.toLong(MapUtil.get(resp, "data.jobId")));
             // 数组 转 字符串
             String resolutionString = CustomArrayUtil.convertToString(aiGenerateVideoDTO.getResolution());
             aiGenerateVideoDTO.setResolutionString(resolutionString);
@@ -104,7 +104,7 @@ public class AiGenerateVideoServiceImpl implements AiGenerateVideoService {
             System.out.println(aiGenerateVideoDTO);
             aiGenerateVideoMapper.insertAiGenerateVideo(aiGenerateVideoDTO);
         } else {
-            String error_message = (String) MapUtil.get(resp, "error_msg");
+            String error_message = Convert.toStr(MapUtil.get(resp, "error_msg"));
             throw new CustomException("(" + error_code + ") " + error_message);
         }
 
@@ -148,10 +148,10 @@ public class AiGenerateVideoServiceImpl implements AiGenerateVideoService {
         if (response == null) { return null; }
 
         // 将 resolution 从 字符串 转为 数组类型
-        int[] resolution = StrUtil.splitToInt((String) response.get("resolution"), ",");
+        int[] resolution = StrUtil.splitToInt(Convert.toStr(response.get("resolution")), ",");
         response.put("resolution", resolution);
         // 将 source 从 字符串 转为 JSON类型
-        JSONObject source = JSONUtil.parseObj((String) response.get("source"));
+        JSONObject source = JSONUtil.parseObj(Convert.toStr(response.get("source")));
         response.put("source", source);
 
         // 查询进度,并更新

+ 5 - 2
src/main/java/com/backendsys/service/v1/Ai/Aizn/AiznGoodServiceImpl.java

@@ -1,5 +1,6 @@
 package com.backendsys.service.v1.Ai.Aizn;
 
+import cn.hutool.core.convert.Convert;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.backendsys.aspect.HttpRequestAspect;
@@ -81,7 +82,8 @@ public class AiznGoodServiceImpl implements AiznGoodService {
             if ((Integer) resp.get("code") == 200) {
 
                 // -- 成功 ------------------------------------------------------------------
-                Map<String, Object> respData = (Map<String, Object>) resp.get("data");
+//                Map<String, Object> respData = (Map<String, Object>) resp.get("data");
+                Map<String, Object> respData = Convert.toMap(String.class, Object.class, resp.get("data"));
                 System.out.println(respData);
 
                 // -- 将制作结果插入到数据表 -----------------------------------------------------
@@ -142,7 +144,8 @@ public class AiznGoodServiceImpl implements AiznGoodService {
             if ((Integer) resp.get("code") == 200) {
 
                 // -- 成功 ------------------------------------------------------------------
-                Map<String, Object> respData = (Map<String, Object>) resp.get("data");
+//                Map<String, Object> respData = (Map<String, Object>) resp.get("data");
+                Map<String, Object> respData = Convert.toMap(String.class, Object.class, resp.get("data"));
                 System.out.println(respData);
 
                 // -- 将制作结果插入到数据表 -----------------------------------------------------

+ 4 - 4
src/main/java/com/backendsys/service/v1/Ai/Aizn/AiznImageIncantationServiceImpl.java

@@ -1,5 +1,6 @@
 package com.backendsys.service.v1.Ai.Aizn;
 
+import cn.hutool.core.convert.Convert;
 import com.backendsys.entity.v1.Ai.Aizn.AiznImageIncantationDTO;
 import com.backendsys.mapper.Ai.Aizn.AiznImageIncantationMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,9 +22,9 @@ public class AiznImageIncantationServiceImpl implements AiznImageIncantationServ
         Map<Integer, Map<String, Object>> groupedData = new LinkedHashMap<>();
 
         for (Map<String, Object> item : resp) {
-            int categoryId = (int) item.get("category_id");
-            String categoryName = (String) item.get("category_name");
-            String name = (String) item.get("name");
+            int categoryId = Convert.toInt(item.get("category_id"));
+            String categoryName = Convert.toStr(item.get("category_name"));
+            String name = Convert.toStr(item.get("name"));
 
             if (!groupedData.containsKey(categoryId)) {
                 Map<String, Object> categoryData = new LinkedHashMap<>();
@@ -40,7 +41,6 @@ public class AiznImageIncantationServiceImpl implements AiznImageIncantationServ
         }
 
         // 打印转换后的数据
-
         List<Map<String, Object>> result = new ArrayList<>(groupedData.values());
 
         return result;

+ 2 - 1
src/main/java/com/backendsys/service/v1/Ai/Aizn/AiznImageTaskServiceImpl.java

@@ -70,7 +70,8 @@ public class AiznImageTaskServiceImpl implements AiznImageTaskService {
             if ((Integer) resp.get("code") == 200) {
 
                 // -- 成功 ------------------------------------------------------------------
-                Map<String, Object> respData = (Map<String, Object>) resp.get("data");
+//                Map<String, Object> respData = (Map<String, Object>) resp.get("data");
+                Map<String, Object> respData = Convert.toMap(String.class, Object.class, resp.get("data"));
                 Map<String, Object> respDataToCase = MapUtil.convertToUnderscoreCase(respData);
                 System.out.println(respData);
 

+ 5 - 2
src/main/java/com/backendsys/service/v1/Ali/AliDashscopeServiceImpl.java

@@ -1,5 +1,6 @@
 package com.backendsys.service.v1.Ali;
 
+import cn.hutool.core.convert.Convert;
 import cn.hutool.json.JSONUtil;
 import com.backendsys.aspect.HttpRequestAspect;
 import com.backendsys.entity.v1.Ali.AliDashscopeBackgroundDTO;
@@ -68,8 +69,10 @@ public class AliDashscopeServiceImpl implements AliDashscopeService {
          */
 
         // [DB] 更新任务记录
-        Map<String, Object> output = (Map<String, Object>) resp.get("output");
-        String output_task_id = (String) output.get("task_id");
+//        Map<String, Object> output = (Map<String, Object>) resp.get("output");
+//        String output_task_id = (String) output.get("task_id");
+        Map<String, Object> output = Convert.toMap(String.class, Object.class, resp.get("output"));
+        String output_task_id = Convert.toStr(output.get("task_id"));
 
         AliDashscopeTaskDTO aliDashscopeTaskDTO = new AliDashscopeTaskDTO();
         aliDashscopeTaskDTO.setTask_id(output_task_id);

+ 4 - 1
src/main/java/com/backendsys/service/v1/SDKService/SDKTencent/SDKTencentAiServiceImpl.java

@@ -1,5 +1,6 @@
 package com.backendsys.service.v1.SDKService.SDKTencent;
 
+import cn.hutool.core.convert.Convert;
 import com.backendsys.entity.v1.SDKEntity.TencentCOSCredentialsDTO;
 import com.backendsys.exception.CustomException;
 import com.backendsys.utils.MapUtil;
@@ -60,7 +61,9 @@ public class SDKTencentAiServiceImpl implements SDKTencentAiService {
                 System.out.println(resp);
                 throw new CustomException("(" + respHeaderCode + ") " + respHeaderMessage);
             }
-            Map<String, Object> respPayload = (Map<String, Object>) resp.get("Payload");
+//            Map<String, Object> respPayload = (Map<String, Object>) resp.get("Payload");
+            Map<String, Object> respPayload = Convert.toMap(String.class, Object.class, resp.get("Payload"));
+
             return respPayload;
         }
         throw new CustomException("resp is null");

+ 1 - 1
src/main/java/com/backendsys/service/v1/System/SysDictionaryService.java

@@ -4,5 +4,5 @@ import java.util.List;
 import java.util.Map;
 
 public interface SysDictionaryService<T> {
-    Map<String, List<Map<String, Object>>> queryDictionary(T data);
+    Map<String, List<Map<String, Object>>> queryDictionary();
 }

+ 2 - 2
src/main/java/com/backendsys/service/v1/System/SysDictionaryServiceImpl.java

@@ -16,9 +16,9 @@ public class SysDictionaryServiceImpl<T> implements SysDictionaryService<T> {
     private SysDictionaryMapper sysDictionaryMapper;
 
     @Override
-    public Map<String, List<Map<String, Object>>> queryDictionary(T data) {
+    public Map<String, List<Map<String, Object>>> queryDictionary() {
 
-        List<Map<String, Object>> list = sysDictionaryMapper.queryDictionary(data);
+        List<Map<String, Object>> list = sysDictionaryMapper.queryDictionary();
 
         // 过滤掉 { id, category_value } 字段
         Map<String, List<Map<String, Object>>> result = list.stream()

+ 7 - 3
src/main/java/com/backendsys/service/v1/System/SysUserServiceImpl.java

@@ -1,5 +1,6 @@
 package com.backendsys.service.v1.System;
 
+import cn.hutool.core.convert.Convert;
 import com.backendsys.utils.UserUtils;
 import com.backendsys.utils.MD5Util;
 import com.github.pagehelper.PageHelper;
@@ -209,7 +210,8 @@ public class SysUserServiceImpl implements SysUserService {
 
             // 删除前,清除登录状态
             Map<String, Object> sysUser = sysUserMapper.queryUserDetail(id);
-            String last_login_uuid = (String) sysUser.get("last_login_uuid");
+//            String last_login_uuid = (String) sysUser.get("last_login_uuid");
+            String last_login_uuid = Convert.toStr(sysUser.get("last_login_uuid"));
             redisTemplate.delete("token:id:" + last_login_uuid);
 
             sysUserMapper.deleteUser(id);
@@ -263,7 +265,8 @@ public class SysUserServiceImpl implements SysUserService {
 
             // 删除前,清除登录状态
             Map<String, Object> sysUser = sysUserMapper.queryUserDetail(id);
-            String last_login_uuid = (String) sysUser.get("last_login_uuid");
+//            String last_login_uuid = (String) sysUser.get("last_login_uuid");
+            String last_login_uuid = Convert.toStr(sysUser.get("last_login_uuid"));
             redisTemplate.delete("token:id:" + last_login_uuid);
 
             sysUserMapper.deactivateUser(id);
@@ -358,7 +361,8 @@ public class SysUserServiceImpl implements SysUserService {
             sysUserMapper.updateUserInfo(sysUserDTO);
 
             // 清除 Redis 登录信息
-            String last_login_uuid = (String) sysUser.get("last_login_uuid");
+//            String last_login_uuid = (String) sysUser.get("last_login_uuid");
+            String last_login_uuid = Convert.toStr(sysUser.get("last_login_uuid"));
             if (!last_login_uuid.isEmpty()) {
                 redisTemplate.delete("token:id:" + last_login_uuid);
                 return Map.of("user_id", user_id);

+ 1 - 0
src/main/java/com/backendsys/utils/LanguageUtil.java

@@ -14,6 +14,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Component;
 
+@SuppressWarnings({"rawtypes", "unchecked"})
 @Component
 public class LanguageUtil {
 

+ 1 - 0
src/main/java/com/backendsys/utils/ListUtil.java

@@ -8,6 +8,7 @@ import java.util.stream.Collectors;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 
+@SuppressWarnings({"rawtypes", "unchecked"})
 public class ListUtil {
 
     /**

+ 1 - 0
src/main/java/com/backendsys/utils/MapUtil.java

@@ -7,6 +7,7 @@ import org.springframework.cglib.beans.BeanMap;
 import java.lang.reflect.Field;
 import java.util.*;
 
+@SuppressWarnings({"rawtypes", "unchecked"})
 public class MapUtil {
 
     /**

+ 1 - 0
src/main/java/com/backendsys/utils/UserUtils.java

@@ -2,6 +2,7 @@ package com.backendsys.utils;
 
 import java.util.*;
 
+@SuppressWarnings({"rawtypes", "unchecked"})
 public class UserUtils {
     // [UserUtils] 提取多个用户角色中的 module_ids,合并成一个数组 modules: []
     public static List<String> extractModuleCodes(Object roles) {

+ 4 - 4
src/main/java/com/backendsys/utils/response/PageInfoResult.java

@@ -6,13 +6,13 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
-public class PageInfoResult<T> extends PageInfo {
-
+@SuppressWarnings({"rawtypes", "unchecked"})
+public class PageInfoResult extends PageInfo {
     public PageInfoResult() {}
-    public PageInfoResult(List<T> list) {
+    public PageInfoResult(List list) {
         super(list);
     }
-    public PageInfoResult(List<T> list, int navigatePages) {
+    public PageInfoResult(List list, int navigatePages) {
         super(list, navigatePages);
     }
     public Map<String, Object> toMap() {