Pārlūkot izejas kodu

feat:优化角色

荭琪枫 2 gadi atpakaļ
vecāks
revīzija
871544b1b9

+ 4 - 2
iot-common/iot-common-dao/iot-data-service/src/main/java/cc/iotkit/data/ICommonData.java

@@ -57,13 +57,15 @@ public interface ICommonData<T extends Id<ID>, ID> {
     /**
      * 按id删除
      */
-    default void deleteById(ID id) {
+    default long deleteById(ID id) {
+        return 0L;
     }
 
     /**
      * 按id批量删除
      */
-    default void deleteByIds(Collection<ID> ids) {
+    default int deleteByIds(Collection<ID> ids) {
+        return 0;
     }
 
     /**

+ 5 - 1
iot-common/iot-common-dao/iot-data-service/src/main/java/cc/iotkit/data/system/ISysRoleDeptData.java

@@ -3,6 +3,8 @@ package cc.iotkit.data.system;
 import cc.iotkit.data.ICommonData;
 import cc.iotkit.model.system.SysRoleDept;
 
+import java.util.List;
+
 /**
  * 操作日志数据接口
  *
@@ -10,6 +12,8 @@ import cc.iotkit.model.system.SysRoleDept;
  */
 public interface ISysRoleDeptData extends ICommonData<SysRoleDept, Long> {
 
-    void delete(Long roleId);
+    void deleteByRoleId(List<Long> roleIds);
+
+    long insertBatch(List<SysRoleDept> list);
 
 }

+ 7 - 0
iot-common/iot-common-dao/iot-data-service/src/main/java/cc/iotkit/data/system/ISysRoleMenuData.java

@@ -3,6 +3,8 @@ package cc.iotkit.data.system;
 import cc.iotkit.data.ICommonData;
 import cc.iotkit.model.system.SysRoleMenu;
 
+import java.util.List;
+
 /**
  * 操作日志数据接口
  *
@@ -10,4 +12,9 @@ import cc.iotkit.model.system.SysRoleMenu;
  */
 public interface ISysRoleMenuData extends ICommonData<SysRoleMenu, Long> {
     boolean checkMenuExistRole(Long menuId);
+
+    long insertBatch(List<SysRoleMenu> list);
+
+    long deleteByRoleId(List<Long> ids);
+
 }

+ 6 - 0
iot-common/iot-common-dao/iot-data-service/src/main/java/cc/iotkit/data/system/ISysUserRoleData.java

@@ -3,6 +3,8 @@ package cc.iotkit.data.system;
 import cc.iotkit.data.ICommonData;
 import cc.iotkit.model.system.SysUserRole;
 
+import java.util.List;
+
 /**
  * 用户角色数据接口
  *
@@ -24,4 +26,8 @@ public interface ISysUserRoleData extends ICommonData<SysUserRole, Long> {
      * @return 结果
      */
     long countUserRoleByRoleId(Long roleId);
+
+    long delete(Long roleId, List<Long> userIds);
+
+    long insertBatch(List<SysUserRole> list);
 }

+ 5 - 0
iot-common/iot-common-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysRoleDataImpl.java

@@ -140,4 +140,9 @@ public class SysRoleDataImpl implements ISysRoleData {
                 .build();
 
     }
+
+    @Override
+    public long deleteById(Long id) {
+        return jpaQueryFactory.delete(tbSysRole).where(tbSysRole.id.eq(id)).execute();
+    }
 }

+ 10 - 2
iot-common/iot-common-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysRoleDeptDataImpl.java

@@ -2,11 +2,14 @@ package cc.iotkit.data.service;
 
 import cc.iotkit.data.system.ISysRoleDeptData;
 import cc.iotkit.data.util.PredicateBuilder;
+import cc.iotkit.model.system.SysRoleDept;
 import com.querydsl.jpa.impl.JPAQueryFactory;
 import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Primary;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 import static cc.iotkit.data.model.QTbSysRoleDept.tbSysRoleDept;
 
 /**
@@ -22,7 +25,12 @@ public class SysRoleDeptDataImpl implements ISysRoleDeptData {
     private final JPAQueryFactory jpaQueryFactory;
 
     @Override
-    public void delete(Long roleId) {
-        jpaQueryFactory.delete(tbSysRoleDept).where(PredicateBuilder.instance().and(tbSysRoleDept.roleId.eq(roleId)).build());
+    public void deleteByRoleId(List<Long> roleIds) {
+        jpaQueryFactory.delete(tbSysRoleDept).where(PredicateBuilder.instance().and(tbSysRoleDept.roleId.in(roleIds)).build());
+    }
+
+    @Override
+    public long insertBatch(List<SysRoleDept> list) {
+        return 0;
     }
 }

+ 16 - 1
iot-common/iot-common-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysRoleMenuDataImpl.java

@@ -1,15 +1,20 @@
 package cc.iotkit.data.service;
 
+import cc.iotkit.common.utils.MapstructUtils;
 import cc.iotkit.data.model.QTbSysRoleMenu;
 import cc.iotkit.data.model.TbSysRoleMenu;
+import cc.iotkit.data.model.TbSysUserRole;
 import cc.iotkit.data.system.ISysRoleMenuData;
 import cc.iotkit.data.util.PredicateBuilder;
+import cc.iotkit.model.system.SysRoleMenu;
 import com.querydsl.jpa.impl.JPAQueryFactory;
 import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Primary;
 import org.springframework.stereotype.Service;
 
-import java.util.Objects;
+import java.util.*;
+
+import static cc.iotkit.data.model.QTbSysRoleMenu.tbSysRoleMenu;
 
 /**
  * author: 石恒
@@ -33,4 +38,14 @@ public class SysRoleMenuDataImpl implements ISysRoleMenuData {
                         .build()).fetchOne();
         return Objects.nonNull(tbSysRoleMenu);
     }
+
+    @Override
+    public long insertBatch(List<SysRoleMenu> list) {
+        return jpaQueryFactory.insert(tbSysRoleMenu).values(List.of(Objects.requireNonNull(MapstructUtils.convert(list, TbSysRoleMenu.class)))).execute();
+    }
+
+    @Override
+    public long deleteByRoleId(List<Long> ids) {
+        return jpaQueryFactory.delete(tbSysRoleMenu).where(tbSysRoleMenu.roleId.in(ids)).execute();
+    }
 }

+ 27 - 1
iot-common/iot-common-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/SysUserRoleDataImpl.java

@@ -1,18 +1,31 @@
 package cc.iotkit.data.service;
 
+import cc.iotkit.common.utils.MapstructUtils;
 import cc.iotkit.data.dao.SysUserRoleRepository;
+import cc.iotkit.data.model.TbSysUserRole;
 import cc.iotkit.data.system.ISysUserRoleData;
+import cc.iotkit.data.util.PredicateBuilder;
+import cc.iotkit.model.system.SysUserRole;
+import com.querydsl.jpa.impl.JPAQueryFactory;
+import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.util.List;
+import java.util.Objects;
+
+import static cc.iotkit.data.model.QTbSysRole.tbSysRole;
+import static cc.iotkit.data.model.QTbSysRoleMenu.tbSysRoleMenu;
 import static cc.iotkit.data.model.QTbSysUserRole.tbSysUserRole;
 
 /**
  * @Author:tfd
  * @Date:2023/5/30 16:36
  */
+@RequiredArgsConstructor
 public class SysUserRoleDataImpl implements ISysUserRoleData {
     @Autowired
-    private SysUserRoleRepository sysUserRoleRepository;
+    private final SysUserRoleRepository sysUserRoleRepository;
+    private final JPAQueryFactory jpaQueryFactory;
 
     @Override
     public int deleteByUserId(Long userId) {
@@ -23,4 +36,17 @@ public class SysUserRoleDataImpl implements ISysUserRoleData {
     public long countUserRoleByRoleId(Long roleId) {
         return sysUserRoleRepository.count(tbSysUserRole.roleId.eq(roleId));
     }
+
+    @Override
+    public long insertBatch(List<SysUserRole> list) {
+        return jpaQueryFactory.insert(tbSysRole).values(List.of(Objects.requireNonNull(MapstructUtils.convert(list, TbSysUserRole.class)))).execute();
+    }
+
+    @Override
+    public long delete(Long roleId, List<Long> userIds) {
+        return jpaQueryFactory.delete(tbSysUserRole).where(PredicateBuilder.instance()
+                .and(tbSysUserRole.roleId.eq(roleId))
+                .and(tbSysUserRole.userId.in(userIds))
+                .build()).execute();
+    }
 }

+ 0 - 24
iot-module/iot-system/src/main/java/cc/iotkit/system/dto/SysRoleDept.java

@@ -1,24 +0,0 @@
-package cc.iotkit.system.dto;
-
-import lombok.Data;
-
-/**
- * 角色和部门关联
- *
- * @author Lion Li
- */
-
-@Data
-public class SysRoleDept {
-
-    /**
-     * 角色ID
-     */
-    private Long roleId;
-
-    /**
-     * 部门ID
-     */
-    private Long deptId;
-
-}

+ 0 - 24
iot-module/iot-system/src/main/java/cc/iotkit/system/dto/SysUserRole.java

@@ -1,24 +0,0 @@
-package cc.iotkit.system.dto;
-
-import lombok.Data;
-
-/**
- * 用户和角色关联
- *
- * @author Lion Li
- */
-
-@Data
-public class SysUserRole {
-
-    /**
-     * 用户ID
-     */
-    private Long userId;
-
-    /**
-     * 角色ID
-     */
-    private Long roleId;
-
-}