refactor(system): 重构系统模块的数据访问层和业务逻辑

This commit is contained in:
2025-12-27 11:59:36 +08:00
parent 79cb44c522
commit 05914f1548
17 changed files with 600 additions and 571 deletions
@@ -1,118 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.odboy.system.dal.mysql.SystemRoleMapper">
<resultMap id="BaseResultMap" type="cn.odboy.system.dal.model.SystemRoleVo">
<id column="role_role_id" property="id"/>
<result column="role_name" property="name"/>
<result column="role_data_scope" property="dataScope"/>
<result column="role_level" property="level"/>
<result column="role_description" property="description"/>
<result column="role_create_by" property="createBy"/>
<result column="role_update_by" property="updateBy"/>
<result column="role_create_time" property="createTime"/>
<result column="role_update_time" property="updateTime"/>
<collection property="menus" ofType="cn.odboy.system.dal.dataobject.SystemMenuTb">
<id column="menu_id" property="id"/>
<result column="menu_title" property="title"/>
<result column="menu_permission" property="permission"/>
</collection>
<collection property="depts" ofType="cn.odboy.system.dal.dataobject.SystemDeptTb">
<id column="dept_id" property="id"/>
<result column="dept_name" property="name"/>
</collection>
</resultMap>
<select id="selectRoleByArgs" resultMap="BaseResultMap">
select role.*,
dept.dept_id as dept_id, dept.name as dept_name,
menu.menu_id as menu_id, menu.title as menu_title, menu.permission as menu_permission
from (
select
role.role_id as role_role_id, role.name as role_name, role.data_scope as role_data_scope,
role.level as role_level, role.description as role_description, role.create_by as role_create_by,
role.update_by as role_update_by, role.create_time as role_create_time, role.update_time as role_update_time
from system_role role
<where>
<if test="criteria.blurry != null and criteria.blurry != ''">
and (
role.name like concat('%', #{criteria.blurry}, '%')
or role.description like concat('%', #{criteria.blurry}, '%')
)
</if>
<if test="criteria.createTime != null and criteria.createTime.size() != 0">
and role.create_time between #{criteria.createTime[0]} and #{criteria.createTime[1]}
</if>
</where>
order by role.level
<if test="criteria.offset != null">
limit #{criteria.offset}, #{criteria.size}
</if>
) role
left join system_roles_menus srm on role.role_role_id = srm.role_id
left join system_menu menu on menu.menu_id = srm.menu_id
left join system_roles_depts srd on role.role_role_id = srd.role_id
left join system_dept dept on dept.dept_id = srd.dept_id
order by role.role_level
</select>
<select id="getRoleById" resultMap="BaseResultMap">
select role.role_id as role_role_id,
role.name as role_name,
role.data_scope as role_data_scope,
role.level as role_level,
role.description as role_description,
role.create_by as role_create_by,
role.update_by as role_update_by,
role.create_time as role_create_time,
role.update_time as role_update_time,
dept.dept_id as dept_id,
dept.name as dept_name,
menu.menu_id as menu_id,
menu.title as menu_title,
menu.permission as menu_permission
from system_role role
left join system_roles_menus srm on role.role_id = srm.role_id
left join system_menu menu on menu.menu_id = srm.menu_id
left join system_roles_depts srd on role.role_id = srd.role_id
left join system_dept dept on dept.dept_id = srd.dept_id
where role.role_id = #{roleId}
</select>
<select id="selectRoleByUserId" resultMap="BaseResultMap">
SELECT role.role_id as role_role_id,
role.name as role_name,
role.data_scope as role_data_scope,
role.level as role_level,
role.description as role_description,
role.create_by as role_create_by,
role.update_by as role_update_by,
role.create_time as role_create_time,
role.update_time as role_update_time,
dept.dept_id as dept_id,
dept.name as dept_name,
menu.menu_id as menu_id,
menu.title as menu_title,
menu.permission as menu_permission
from system_role role
left join system_roles_menus srm on role.role_id = srm.role_id
left join system_menu menu on menu.menu_id = srm.menu_id
left join system_roles_depts srd on role.role_id = srd.role_id
left join system_dept dept on dept.dept_id = srd.dept_id
left join system_users_roles ur on role.role_id = ur.role_id
WHERE role.role_id = ur.role_id
AND ur.user_id = #{userId}
</select>
<select id="countRoleByDeptIds" resultType="int">
select count(*)
from system_role r, system_roles_depts d
where r.role_id = d.role_id
and d.dept_id in
<foreach collection="deptIds" item="deptId" open="(" separator="," close=")">
#{deptId}
</foreach>
</select>
<select id="selectRoleByMenuId" resultType="cn.odboy.system.dal.model.SystemRoleVo">
SELECT role.role_id as id
FROM system_role role,
system_roles_menus rm
WHERE role.role_id = rm.role_id
AND rm.menu_id = #{menuId}
</select>
</mapper>
@@ -1,160 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.odboy.system.dal.mysql.SystemUserMapper">
<resultMap id="BaseResultMap" type="cn.odboy.system.dal.model.SystemUserVo">
<id column="user_user_id" property="id"/>
<result column="user_dept_id" property="deptId"/>
<result column="user_username" property="username"/>
<result column="user_nick_name" property="nickName"/>
<result column="user_email" property="email"/>
<result column="user_phone" property="phone"/>
<result column="user_gender" property="gender"/>
<result column="user_avatar_name" property="avatarName"/>
<result column="user_avatar_path" property="avatarPath"/>
<result column="user_password" property="password"/>
<result column="user_is_admin" property="isAdmin"/>
<result column="user_enabled" property="enabled"/>
<result column="user_pwd_reset_time" property="pwdResetTime"/>
<result column="user_create_by" property="createBy"/>
<result column="user_update_by" property="updateBy"/>
<result column="user_create_time" property="createTime"/>
<result column="user_update_time" property="updateTime"/>
<association property="dept" javaType="cn.odboy.system.dal.dataobject.SystemDeptTb">
<id column="dept_id" property="id"/>
<result column="dept_name" property="name"/>
</association>
<collection property="jobs" ofType="cn.odboy.system.dal.dataobject.SystemJobTb">
<id column="job_id" property="id"/>
<result column="job_name" property="name"/>
</collection>
<collection property="roles" ofType="cn.odboy.system.dal.model.SystemRoleVo">
<id column="role_id" property="id"/>
<result column="role_name" property="name"/>
<result column="role_level" property="level"/>
<result column="role_data_scope" property="dataScope"/>
</collection>
</resultMap>
<select id="selectUserByArgs" resultMap="BaseResultMap">
select u.user_id as user_user_id,
u.dept_id as user_dept_id,
u.username as user_username,
u.nick_name as user_nick_name,
u.email as user_email,
u.phone as user_phone,
u.gender as user_gender,
u.avatar_name as user_avatar_name,
u.avatar_path as user_avatar_path,
u.enabled as user_enabled,
u.pwd_reset_time as user_pwd_reset_time,
u.create_by as user_create_by,
u.update_by as user_update_by,
u.create_time as user_create_time,
u.update_time as user_update_time,
d.dept_id as dept_id,
d.name as dept_name,
j.id as job_id,
j.name as job_name,
r.role_id as role_id,
r.name as role_name,
r.level as role_level,
r.data_scope as role_data_scope
from system_user u
left join system_dept d on u.dept_id = d.dept_id
left join system_users_jobs suj on u.user_id = suj.user_id
left join system_job j on suj.job_id = j.id
left join system_users_roles sur on u.user_id = sur.user_id
left join system_role r on sur.role_id = r.role_id
<where>
<if test="criteria.id != null">
and u.user_id = #{criteria.id}
</if>
<if test="criteria.enabled != null">
and u.enabled = #{criteria.enabled}
</if>
<if test="criteria.deptIds != null and criteria.deptIds.size() != 0">
and u.dept_id in
<foreach collection="criteria.deptIds" item="deptId" open="(" separator="," close=")">
#{deptId}
</foreach>
</if>
<if test="criteria.blurry != null and criteria.blurry != ''">
and (
u.username like concat('%', #{criteria.blurry}, '%')
or u.nick_name like concat('%', #{criteria.blurry}, '%')
or u.email like concat('%', #{criteria.blurry}, '%')
)
</if>
<if test="criteria.createTime != null and criteria.createTime.size() != 0">
and u.create_time between #{criteria.createTime[0]} and #{criteria.createTime[1]}
</if>
</where>
order by u.user_id desc
</select>
<select id="getUserByUsername" resultMap="BaseResultMap">
select u.password user_password,
u.is_admin user_is_admin,
u.user_id as user_user_id,
u.dept_id as user_dept_id,
u.username as user_username,
u.nick_name as user_nick_name,
u.email as user_email,
u.phone as user_phone,
u.gender as user_gender,
u.avatar_name as user_avatar_name,
u.avatar_path as user_avatar_path,
u.enabled as user_enabled,
u.pwd_reset_time as user_pwd_reset_time,
u.create_by as user_create_by,
u.update_by as user_update_by,
u.create_time as user_create_time,
u.update_time as user_update_time,
d.dept_id as dept_id,
d.name as dept_name
from system_user u
left join system_dept d on u.dept_id = d.dept_id
where u.username = #{username}
and u.enabled = 1
</select>
<select id="selectUserByRoleId" resultType="cn.odboy.system.dal.model.SystemUserVo">
SELECT u.user_id as id, u.username
FROM system_user u,
system_users_roles r
WHERE u.user_id = r.user_id
AND r.role_id = #{roleId}
group by u.user_id
</select>
<select id="selectUserByDeptId" resultType="cn.odboy.system.dal.model.SystemUserVo">
SELECT u.*
FROM system_user u,
system_users_roles r,
system_roles_depts d
WHERE u.user_id = r.user_id
AND r.role_id = d.role_id
AND d.dept_id = #{deptId}
group by u.user_id
</select>
<select id="selectUserByMenuId" resultType="cn.odboy.system.dal.model.SystemUserVo">
SELECT u.user_id as id, u.username
FROM system_user u,
system_users_roles ur,
system_roles_menus rm
WHERE u.user_id = ur.user_id
AND ur.role_id = rm.role_id
AND rm.menu_id = #{menuId}
group by u.user_id
</select>
<select id="countUserByJobIds" resultType="Long">
SELECT count(*) FROM system_user u, system_users_jobs j
WHERE u.user_id = j.user_id AND j.job_id IN
<foreach collection="jobIds" item="jobId" open="(" separator="," close=")">
#{jobId}
</foreach>
</select>
<select id="countUserByRoleIds" resultType="Long">
SELECT count(*) FROM system_user u, system_users_roles r
WHERE u.user_id = r.user_id AND r.role_id in
<foreach collection="roleIds" item="roleId" open="(" separator="," close=")">
#{roleId}
</foreach>
</select>
</mapper>
@@ -3,9 +3,9 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<style>
@page {
margin: 0;
}
@page {
margin: 0;
}
</style>
</head>
<body style="margin: 0px;
@@ -43,7 +43,6 @@
href="https://github.com/odboy-tianjun/cutejava" target="_blank">CuteJava</a>
后台管理系统 All Rights Reserved.
</div>
</div>
</div>
</body>
@@ -3,9 +3,9 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<style>
@page {
margin: 0;
}
@page {
margin: 0;
}
</style>
</head>
<body style="margin: 0px;
@@ -64,7 +64,6 @@
href="https://github.com/odboy-tianjun/cutejava" target="_blank">CuteJava</a>
后台管理系统 All Rights Reserved.
</div>
</div>
</body>
</html>