فهرست منبع

1、修改切面

zhoux 2 سال پیش
والد
کامیت
f8a6816ed4

+ 2 - 2
src/main/java/com/dk/common/controller/BaseController.java

@@ -133,7 +133,7 @@ public abstract class BaseController<T> {
      */
     @ApiOperation(value = "批量停用",notes = "批量停用")
     @PostMapping("disable_batch")
-    public ResponseResultVO<Boolean> disableBatch(@RequestBody List<Long> ids) {
+    public ResponseResultVO<Boolean> disableBatch(@RequestBody List<String> ids) {
         return this.getService().disableBatch(ids);
     }
 
@@ -146,7 +146,7 @@ public abstract class BaseController<T> {
      */
     @ApiOperation(value = "批量启用",notes = "批量启用")
     @PostMapping("enable_batch")
-    public ResponseResultVO<Boolean> enableBatch(@RequestBody List<Long> ids) {
+    public ResponseResultVO<Boolean> enableBatch(@RequestBody List<String> ids) {
         return this.getService().enableBatch(ids);
     }
 

+ 27 - 11
src/main/java/com/dk/common/infrastructure/aspect/ServiceAspect.java

@@ -1,6 +1,7 @@
 package com.dk.common.infrastructure.aspect;
 
 import com.dk.common.infrastructure.util.AuthUtils;
+import com.dk.common.infrastructure.util.MyMetaObjectHandler;
 import com.dk.common.infrastructure.util.MybatisSqlIntercept;
 import com.dk.common.mapper.opinfo.OpInfoMapper;
 import com.dk.common.infrastructure.operationlog.OperationLogService;
@@ -66,27 +67,42 @@ public class ServiceAspect implements HandlerInterceptor {
     public void before(JoinPoint joinPoint) {
         try {
             String authorization = httpServletRequest.getHeader("Authorization");
+            if(authorization == null ){
+                return;
+            }
+            String[] tokens = authorization.split(" ");
+            String decrypt = AESSecurityUtil.decrypt(AESKey, tokens[1]);
+            String staffId = JwtUtil.getStaffId(decrypt);
+            String appCode = JwtUtil.getAppCode(decrypt);
+
             //查询及其他特殊方法跳过
             if (!joinPoint.getSignature().getName().startsWith("select") &&
                     !joinPoint.getSignature().getName().startsWith("get") &&
                     !joinPoint.getSignature().getName().equals("login") &&
                     authorization != null
             ) {
-                String[] tokens = authorization.split(" ");
-                String decrypt = AESSecurityUtil.decrypt(AESKey, tokens[1]);
-                String staffId = JwtUtil.getStaffId(decrypt);
-
-                String appCode = JwtUtil.getAppCode(decrypt);
-
                 opInfoMapper.setOpInfo(appCode, staffId.toString(), JwtUtil.getLang(decrypt));
 
                 //记录修改前数据
                 if (!skipMethod.contains(joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName())) {
                     operationLogService.saveLogBefore(joinPoint);
                 }
+                // 设置企业Id
+                String cpId = JwtUtil.getCpId(decrypt);
+                if (cpId != null) {
+                    MyMetaObjectHandler.cpId = Integer.parseInt(cpId);
+                }
+            }else{
+                // 设置企业Id
+                String cpId = JwtUtil.getCpId(decrypt);
+                if (cpId != null) {
+                    MybatisSqlIntercept.cpId = Integer.parseInt(cpId);
+                }
             }
+
             /* 从请求头中获取国际化参数 */
             MybatisSqlIntercept.I18N = httpServletRequest.getHeader("i18n");
+
 //        opInfoMapper.setOpInfo("","","");
         } catch (Exception ignored) {
             opInfoMapper.setOpInfo(UUID.randomUUID().toString(), "10002024-0218-0000-0000-0000000b8b9b", httpServletRequest.getHeader("i18n"));
@@ -95,9 +111,9 @@ public class ServiceAspect implements HandlerInterceptor {
     }
 
     /**
-     * @desc   : 后置切面
+     * @desc : 后置切面
      * @author : 洪旭东
-     * @date   : 2023-08-16 15:16
+     * @date : 2023-08-16 15:16
      */
     @After("print()")
     public void after(JoinPoint joinPoint) {
@@ -115,11 +131,11 @@ public class ServiceAspect implements HandlerInterceptor {
     }
 
     /**
-     * @desc   : 不记录日志的方法
+     * @desc : 不记录日志的方法
      * @author : 洪旭东
-     * @date   : 2023-09-05 13:54
+     * @date : 2023-09-05 13:54
      */
-    private final List<String> skipMethod = new ArrayList<String>(){{
+    private final List<String> skipMethod = new ArrayList<String>() {{
         add("com.dk.common.service.BaseService.insert");
         add("com.dk.mdm.service.pdm.WsClockService.auto");
     }};

+ 31 - 0
src/main/java/com/dk/common/infrastructure/util/MyMetaObjectHandler.java

@@ -0,0 +1,31 @@
+package com.dk.common.infrastructure.util;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import groovy.util.logging.Slf4j;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+public class MyMetaObjectHandler implements MetaObjectHandler {
+
+    public static Integer cpId = 0;
+
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        this.strictInsertFill(metaObject, "cpId", Integer.class, cpId); // 起始版本 3.3.0(推荐使用)
+//        // 或者
+//        this.strictInsertFill(metaObject, "createTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐)
+//        // 或者
+//        this.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
+    }
+
+    @Override
+    public void updateFill(MetaObject metaObject) {
+//        this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)
+//        // 或者
+//        this.strictUpdateFill(metaObject, "updateTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐)
+//        // 或者
+//        this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
+    }
+}

+ 4 - 0
src/main/java/com/dk/common/infrastructure/util/MybatisSqlIntercept.java

@@ -40,6 +40,7 @@ import java.util.Map;
 public class MybatisSqlIntercept implements Interceptor {
 
     public static String I18N = "";
+    public static Integer cpId = 0;
 
     @Override
     public Object intercept(Invocation invocation) throws Throwable {
@@ -64,6 +65,9 @@ public class MybatisSqlIntercept implements Interceptor {
             }
             if (argsNo2Map != null) {
                 argsNo2Map.put("i18n", I18N);
+                if(cpId != 0){
+                    argsNo2Map.put("cpId", cpId);
+                }
                 args2[1] = argsNo2Map;
             }
         } else {

+ 46 - 27
src/main/java/com/dk/common/service/BaseService.java

@@ -24,12 +24,13 @@ import java.lang.reflect.ParameterizedType;
 import java.util.Date;
 import java.util.List;
 import java.util.UUID;
+import java.util.stream.Collectors;
 
 public abstract class BaseService<T> extends ServiceImpl<com.baomidou.mybatisplus.core.mapper.BaseMapper<T>, T> {
 
     public abstract BaseMapper<T> getRepository();
 
-    public String getPrimaryKey(){
+    public String getPrimaryKey() {
         return "id";
     }
 
@@ -112,6 +113,42 @@ public abstract class BaseService<T> extends ServiceImpl<com.baomidou.mybatisplu
     @Transactional(
             rollbackFor = {Exception.class}
     )
+    public ResponseResultVO<Boolean> disableBatch(List<String> ids) {
+        List<UUID> uuidList = ids.stream()
+                .map(s -> {
+                    try {
+                        return UUID.fromString(s);
+                    } catch (IllegalArgumentException e) {
+                        return null;
+                    }
+                })
+                .collect(Collectors.toList());
+        return super.update(new UpdateWrapper<T>().set(String.valueOf(PojoConfig.VALUES.get("validKey")), PojoConfig.VALUES.get("unValid")).in(getPrimaryKey(), uuidList).eq(String.valueOf(PojoConfig.VALUES.get("validKey")), PojoConfig.VALUES.get("isValid"))) ?
+                ResponseResultUtil.success() : ResponseResultUtil.error(ResponseCodeEnum.DISABLE_FAIL);
+//        return ResponseResultUtil.success(SqlHelper.retBool(getRepository().disableBatch(ids)));
+    }
+
+    @Transactional(
+            rollbackFor = {Exception.class}
+    )
+    public ResponseResultVO<Boolean> enableBatch(List<String> ids) {
+        List<UUID> uuidList = ids.stream()
+                .map(s -> {
+                    try {
+                        return UUID.fromString(s);
+                    } catch (IllegalArgumentException e) {
+                        return null;
+                    }
+                })
+                .collect(Collectors.toList());
+        return super.update(new UpdateWrapper<T>().set(String.valueOf(PojoConfig.VALUES.get("validKey")), PojoConfig.VALUES.get("unValid")).in(getPrimaryKey(), uuidList).eq(String.valueOf(PojoConfig.VALUES.get("validKey")), PojoConfig.VALUES.get("isValid"))) ?
+                ResponseResultUtil.success() : ResponseResultUtil.error(ResponseCodeEnum.ENABLE_FAIL);
+//        return ResponseResultUtil.success(SqlHelper.retBool(getRepository().disableBatch(ids)));
+    }
+
+    @Transactional(
+            rollbackFor = {Exception.class}
+    )
     public ResponseResultVO<Boolean> insertBatch(List<T> list) {
 //        boolean flag = saveBatch(list);
 //        if (flag) {
@@ -130,9 +167,9 @@ public abstract class BaseService<T> extends ServiceImpl<com.baomidou.mybatisplu
                 result += getRepository().insertBatch(list.subList(start, end));
                 start = end;
                 if (end + 200 > size) {
-                    end=size;
+                    end = size;
                 } else {
-                    end+=200;
+                    end += 200;
                 }
             }
         }
@@ -201,24 +238,6 @@ public abstract class BaseService<T> extends ServiceImpl<com.baomidou.mybatisplu
     @Transactional(
             rollbackFor = {Exception.class}
     )
-    public ResponseResultVO<Boolean> disableBatch(List<Long> ids) {
-        return super.update(new UpdateWrapper<T>().set(String.valueOf(PojoConfig.VALUES.get("validKey")), PojoConfig.VALUES.get("unValid")).in(getPrimaryKey(), ids).eq(String.valueOf(PojoConfig.VALUES.get("validKey")), PojoConfig.VALUES.get("isValid"))) ?
-                ResponseResultUtil.success() : ResponseResultUtil.error(ResponseCodeEnum.DISABLE_FAIL);
-//        return ResponseResultUtil.success(SqlHelper.retBool(getRepository().disableBatch(ids)));
-    }
-
-    @Transactional(
-            rollbackFor = {Exception.class}
-    )
-    public ResponseResultVO<Boolean> enableBatch(List<Long> ids) {
-        return super.update(new UpdateWrapper<T>().set(String.valueOf(PojoConfig.VALUES.get("validKey")), PojoConfig.VALUES.get("isValid")).in(getPrimaryKey(), ids).eq(String.valueOf(PojoConfig.VALUES.get("validKey")), PojoConfig.VALUES.get("unValid"))) ?
-                ResponseResultUtil.success() : ResponseResultUtil.error(ResponseCodeEnum.ENABLE_FAIL);
-//        return ResponseResultUtil.success(SqlHelper.retBool(getRepository().enableBatch(ids)));
-    }
-
-    @Transactional(
-            rollbackFor = {Exception.class}
-    )
     public ResponseResultVO<Boolean> importList(List<T> list) {
         return this.insertBatch(list);
     }
@@ -261,8 +280,8 @@ public abstract class BaseService<T> extends ServiceImpl<com.baomidou.mybatisplu
         return ResponseResultUtil.success(pageList);
     }
 
-    public <Res>ResponseResultVO<PageList <Res>> mergeListWithCount(Object object, List list, Long total) {
-        PageList <Res> pageList = new PageList(list, total);
+    public <Res> ResponseResultVO<PageList<Res>> mergeListWithCount(Object object, List list, Long total) {
+        PageList<Res> pageList = new PageList(list, total);
         if (object instanceof PageInfo && ((PageInfo) object).getPageSize() != null && ((PageInfo) object).getPageSize() != 0 &&
                 ((PageInfo) object).getCurrentPage() != null && ((PageInfo) object).getCurrentPage() != 0) {
             pageList.setPageSize(((PageInfo) object).getPageSize()).setCurrentPage(((PageInfo) object).getCurrentPage());
@@ -330,12 +349,12 @@ public abstract class BaseService<T> extends ServiceImpl<com.baomidou.mybatisplu
      * @return com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper<T>
      * @author H_x_d
      */
-    private UpdateWrapper<T> getUpdateWrapperWhenUpdate(JSONObject jsonObject, String pk){
+    private UpdateWrapper<T> getUpdateWrapperWhenUpdate(JSONObject jsonObject, String pk) {
         UpdateWrapper<T> updateWrapper = new UpdateWrapper<T>().eq(getPrimaryKey(), jsonObject.get(pk));
         //是否有删除标识字段
         Class<T> entityClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
         DeleteFlag deleteFlag = entityClass.getAnnotation(DeleteFlag.class);
-        if (deleteFlag !=null && deleteFlag.value()) {
+        if (deleteFlag != null && deleteFlag.value()) {
             updateWrapper.ne(String.valueOf(PojoConfig.VALUES.get("deleteKey")), PojoConfig.VALUES.get("isDelete"));
         }
         return updateWrapper;
@@ -350,13 +369,13 @@ public abstract class BaseService<T> extends ServiceImpl<com.baomidou.mybatisplu
      * @return com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper<T>
      * @author H_x_d
      */
-    private UpdateWrapper<T> getUpdateWrapperWhenUpdateUuid(JSONObject jsonObject, String pk){
+    private UpdateWrapper<T> getUpdateWrapperWhenUpdateUuid(JSONObject jsonObject, String pk) {
         UUID uuid = UUID.fromString(jsonObject.get(pk).toString());
         UpdateWrapper<T> updateWrapper = new UpdateWrapper<T>().eq(getPrimaryKey(), uuid);
         //是否有删除标识字段
         Class<T> entityClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
         DeleteFlag deleteFlag = entityClass.getAnnotation(DeleteFlag.class);
-        if (deleteFlag !=null && deleteFlag.value()) {
+        if (deleteFlag != null && deleteFlag.value()) {
             updateWrapper.ne(String.valueOf(PojoConfig.VALUES.get("deleteKey")), PojoConfig.VALUES.get("isDelete"));
         }
         return updateWrapper;