!44 修改批量接口,改用mybatis原生foreach优化性能

Merge pull request !44 from Yjoioooo/insert-optimization
This commit is contained in:
疯狂的狮子Li 2021-05-31 17:43:53 +08:00 committed by Gitee
commit 38c3c878e1
13 changed files with 98 additions and 17 deletions

View File

@ -30,4 +30,12 @@ public interface SysDeptMapper extends BaseMapperPlus<SysDept> {
*/ */
public List<Integer> selectDeptListByRoleId(@Param("roleId") Long roleId, @Param("deptCheckStrictly") boolean deptCheckStrictly); public List<Integer> selectDeptListByRoleId(@Param("roleId") Long roleId, @Param("deptCheckStrictly") boolean deptCheckStrictly);
/**
* 修改子元素关系
*
* @param depts 子元素
* @return 结果
*/
public int updateDeptChildren(@Param("depts") List<SysDept> depts);
} }

View File

@ -3,6 +3,8 @@ package com.ruoyi.system.mapper;
import com.ruoyi.common.core.page.BaseMapperPlus; import com.ruoyi.common.core.page.BaseMapperPlus;
import com.ruoyi.system.domain.SysRoleDept; import com.ruoyi.system.domain.SysRoleDept;
import java.util.List;
/** /**
* 角色与部门关联表 数据层 * 角色与部门关联表 数据层
* *
@ -10,4 +12,12 @@ import com.ruoyi.system.domain.SysRoleDept;
*/ */
public interface SysRoleDeptMapper extends BaseMapperPlus<SysRoleDept> { public interface SysRoleDeptMapper extends BaseMapperPlus<SysRoleDept> {
/**
* 批量新增角色部门信息
*
* @param roleDeptList 角色部门列表
* @return 结果
*/
public int batchRoleDept(List<SysRoleDept> roleDeptList);
} }

View File

@ -3,6 +3,8 @@ package com.ruoyi.system.mapper;
import com.ruoyi.common.core.page.BaseMapperPlus; import com.ruoyi.common.core.page.BaseMapperPlus;
import com.ruoyi.system.domain.SysRoleMenu; import com.ruoyi.system.domain.SysRoleMenu;
import java.util.List;
/** /**
* 角色与菜单关联表 数据层 * 角色与菜单关联表 数据层
* *
@ -10,4 +12,12 @@ import com.ruoyi.system.domain.SysRoleMenu;
*/ */
public interface SysRoleMenuMapper extends BaseMapperPlus<SysRoleMenu> { public interface SysRoleMenuMapper extends BaseMapperPlus<SysRoleMenu> {
/**
* 批量新增角色菜单信息
*
* @param roleMenuList 角色菜单列表
* @return 结果
*/
public int batchRoleMenu(List<SysRoleMenu> roleMenuList);
} }

View File

@ -3,6 +3,8 @@ package com.ruoyi.system.mapper;
import com.ruoyi.common.core.page.BaseMapperPlus; import com.ruoyi.common.core.page.BaseMapperPlus;
import com.ruoyi.system.domain.SysUserPost; import com.ruoyi.system.domain.SysUserPost;
import java.util.List;
/** /**
* 用户与岗位关联表 数据层 * 用户与岗位关联表 数据层
* *
@ -10,4 +12,12 @@ import com.ruoyi.system.domain.SysUserPost;
*/ */
public interface SysUserPostMapper extends BaseMapperPlus<SysUserPost> { public interface SysUserPostMapper extends BaseMapperPlus<SysUserPost> {
/**
* 批量新增用户岗位信息
*
* @param userPostList 用户角色列表
* @return 结果
*/
public int batchUserPost(List<SysUserPost> userPostList);
} }

View File

@ -3,6 +3,8 @@ package com.ruoyi.system.mapper;
import com.ruoyi.common.core.page.BaseMapperPlus; import com.ruoyi.common.core.page.BaseMapperPlus;
import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.domain.SysUserRole;
import java.util.List;
/** /**
* 用户与角色关联表 数据层 * 用户与角色关联表 数据层
* *
@ -10,4 +12,12 @@ import com.ruoyi.system.domain.SysUserRole;
*/ */
public interface SysUserRoleMapper extends BaseMapperPlus<SysUserRole> { public interface SysUserRoleMapper extends BaseMapperPlus<SysUserRole> {
/**
* 批量新增用户角色信息
*
* @param userRoleList 用户角色列表
* @return 结果
*/
public int batchUserRole(List<SysUserRole> userRoleList);
} }

View File

@ -244,7 +244,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors)); child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors));
} }
if (children.size() > 0) { if (children.size() > 0) {
updateBatchById(children); baseMapper.updateDeptChildren(children);
} }
} }

View File

@ -240,9 +240,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
list.add(rm); list.add(rm);
} }
if (list.size() > 0) { if (list.size() > 0) {
for (SysRoleMenu sysRoleMenu : list) { rows = roleMenuMapper.batchRoleMenu(list);
rows += roleMenuMapper.insert(sysRoleMenu);
}
} }
return rows; return rows;
} }
@ -263,9 +261,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
list.add(rd); list.add(rd);
} }
if (list.size() > 0) { if (list.size() > 0) {
for (SysRoleDept sysRoleDept : list) { rows = roleDeptMapper.batchRoleDept(list);
rows += roleDeptMapper.insert(sysRoleDept);
}
} }
return rows; return rows;
} }

View File

@ -311,9 +311,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
list.add(ur); list.add(ur);
} }
if (list.size() > 0) { if (list.size() > 0) {
for (SysUserRole sysUserRole : list) { userRoleMapper.batchUserRole(list);
userRoleMapper.insert(sysUserRole);
}
} }
} }
} }
@ -335,9 +333,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
list.add(up); list.add(up);
} }
if (list.size() > 0) { if (list.size() > 0) {
for (SysUserPost sysUserPost : list) { userPostMapper.batchUserPost(list);
userPostMapper.insert(sysUserPost);
}
} }
} }
} }

View File

@ -57,4 +57,17 @@
order by d.parent_id, d.order_num order by d.parent_id, d.order_num
</select> </select>
<update id="updateDeptChildren" parameterType="java.util.List">
update sys_dept set ancestors =
<foreach collection="depts" item="item" index="index"
separator=" " open="case dept_id" close="end">
when #{item.deptId} then #{item.ancestors}
</foreach>
where dept_id in
<foreach collection="depts" item="item" index="index"
separator="," open="(" close=")">
#{item.deptId}
</foreach>
</update>
</mapper> </mapper>

View File

@ -9,4 +9,11 @@
<result property="deptId" column="dept_id"/> <result property="deptId" column="dept_id"/>
</resultMap> </resultMap>
<insert id="batchRoleDept">
insert into sys_role_dept(role_id, dept_id) values
<foreach item="item" index="index" collection="list" separator=",">
(#{item.roleId},#{item.deptId})
</foreach>
</insert>
</mapper> </mapper>

View File

@ -9,4 +9,11 @@
<result property="menuId" column="menu_id"/> <result property="menuId" column="menu_id"/>
</resultMap> </resultMap>
<insert id="batchRoleMenu">
insert into sys_role_menu(role_id, menu_id) values
<foreach item="item" index="index" collection="list" separator=",">
(#{item.roleId},#{item.menuId})
</foreach>
</insert>
</mapper> </mapper>

View File

@ -9,4 +9,11 @@
<result property="postId" column="post_id"/> <result property="postId" column="post_id"/>
</resultMap> </resultMap>
<insert id="batchUserPost">
insert into sys_user_post(user_id, post_id) values
<foreach item="item" index="index" collection="list" separator=",">
(#{item.userId},#{item.postId})
</foreach>
</insert>
</mapper> </mapper>

View File

@ -9,4 +9,11 @@
<result property="roleId" column="role_id"/> <result property="roleId" column="role_id"/>
</resultMap> </resultMap>
<insert id="batchUserRole">
insert into sys_user_role(user_id, role_id) values
<foreach item="item" index="index" collection="list" separator=",">
(#{item.userId},#{item.roleId})
</foreach>
</insert>
</mapper> </mapper>