Преглед изворни кода

解决角色 用户统计有误的bug

wuweihao пре 3 година
родитељ
комит
8d55628eaa

+ 4 - 0
gis_admin/src/main/java/com/gis/admin/mapper/SysUserMapper.java

@@ -6,6 +6,7 @@ import com.gis.admin.mapper.provider.SysUserProvider;
 import com.gis.common.base.entity.dto.UserPageDateDto;
 import com.gis.common.base.mapper.IBaseMapper;
 import com.gis.admin.entity.po.SysUserEntity;
+import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.SelectProvider;
@@ -35,4 +36,7 @@ public interface SysUserMapper extends IBaseMapper<SysUserEntity, Long> {
     @SelectProvider(type = SysUserProvider.class, method = "search")
     List<SysUserEntity> search(UserPageDateDto param);
 
+    @Delete(value = "delete from sys_user_role where user_id=#{userId}")
+    void deleteUserRoleByUserId(Long userId);
+
 }

+ 6 - 1
gis_admin/src/main/java/com/gis/admin/mapper/provider/SysRoleProvider.java

@@ -12,8 +12,13 @@ import org.apache.commons.lang3.StringUtils;
 public class SysRoleProvider {
 
     public String search(PageDto param) {
+
+
         StringBuffer sql = new StringBuffer(
-                "select a.*, count(b.user_id) as count from sys_role a left JOIN sys_user_role b on b.role_id=a.id WHERE a.is_delete=0 ");
+                "select a.*, count(b.user_id) as count from sys_role a " +
+                        "left JOIN sys_user_role b on b.role_id=a.id WHERE a.is_delete=0 ");
+
+
 
         String searchKey = param.getSearchKey();
         if (!StringUtils.isAllBlank(searchKey)) {

+ 3 - 0
gis_admin/src/main/java/com/gis/admin/service/impl/SysUserServiceImpl.java

@@ -128,6 +128,9 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
             entity.setIsDelete(1);
             entity.setUpdateTime(LocalDateTime.now());
             this.update(entity);
+
+            // 删除用户角色表的用户id, 不删除角色统计人数会有误
+            entityMapper.deleteUserRoleByUserId(id);
         }
 
         return Result.success();