!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);
/**
* 修改子元素关系
*
* @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.system.domain.SysRoleDept;
import java.util.List;
/**
* 角色与部门关联表 数据层
*
@ -10,4 +12,12 @@ import com.ruoyi.system.domain.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.system.domain.SysRoleMenu;
import java.util.List;
/**
* 角色与菜单关联表 数据层
*
@ -10,4 +12,12 @@ import com.ruoyi.system.domain.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.system.domain.SysUserPost;
import java.util.List;
/**
* 用户与岗位关联表 数据层
*
@ -10,4 +12,12 @@ import com.ruoyi.system.domain.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.system.domain.SysUserRole;
import java.util.List;
/**
* 用户与角色关联表 数据层
*
@ -10,4 +12,12 @@ import com.ruoyi.system.domain.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));
}
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);
}
if (list.size() > 0) {
for (SysRoleMenu sysRoleMenu : list) {
rows += roleMenuMapper.insert(sysRoleMenu);
}
rows = roleMenuMapper.batchRoleMenu(list);
}
return rows;
}
@ -263,9 +261,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
list.add(rd);
}
if (list.size() > 0) {
for (SysRoleDept sysRoleDept : list) {
rows += roleDeptMapper.insert(sysRoleDept);
}
rows = roleDeptMapper.batchRoleDept(list);
}
return rows;
}

View File

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

View File

@ -57,4 +57,17 @@
order by d.parent_id, d.order_num
</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>

View File

@ -9,4 +9,11 @@
<result property="deptId" column="dept_id"/>
</resultMap>
</mapper>
<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>

View File

@ -9,4 +9,11 @@
<result property="menuId" column="menu_id"/>
</resultMap>
</mapper>
<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>

View File

@ -9,4 +9,11 @@
<result property="postId" column="post_id"/>
</resultMap>
</mapper>
<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>

View File

@ -9,4 +9,11 @@
<result property="roleId" column="role_id"/>
</resultMap>
</mapper>
<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>