electromagnetic-data/infrastructure/repository/src/main/resources/sqlmapper/UserMapper.xml

208 lines
10 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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="com.electromagnetic.industry.software.data.manage.repository.dao.UserMapper">
<resultMap id="UserResultMap" type="com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="user_id" jdbcType="VARCHAR" property="userId" />
<result column="user_name" jdbcType="VARCHAR" property="userName" />
<result column="work_number" jdbcType="VARCHAR" property="workNumber" />
<result column="mobile" jdbcType="VARCHAR" property="mobile" />
<result column="user_dept" jdbcType="VARCHAR" property="userDept" />
<result column="user_title" jdbcType="VARCHAR" property="userTitle" />
<result column="user_pwd" jdbcType="VARCHAR" property="userPwd" />
<result column="join_time" jdbcType="TIMESTAMP" property="joinTime" />
<result column="is_published" jdbcType="TINYINT" property="isPublished" />
<result column="salt" jdbcType="VARCHAR" property="salt" />
<result column="user_status" jdbcType="VARCHAR" property="userStatus" />
<result column="internship_end_date" jdbcType="DATE" property="internshipEndDate"/>
<result column="creator" jdbcType="VARCHAR" property="creator" />
<result column="creator_name" jdbcType="VARCHAR" property="creatorName" />
<result column="gmt_create" jdbcType="TIMESTAMP" property="gmtCreate" />
<result column="modifier" jdbcType="VARCHAR" property="modifier" />
<result column="modifier_name" jdbcType="VARCHAR" property="modifierName" />
<result column="gmt_modified" jdbcType="TIMESTAMP" property="gmtModified" />
<result column="effect_flag" jdbcType="TINYINT" property="effectFlag" />
</resultMap>
<sql id="selectUserVo">
select user_id, user_name, work_number, mobile, user_dept, user_title, user_pwd,
join_time, is_published, salt, user_status, internship_end_date,
creator, creator_name, gmt_create, modifier, modifier_name, gmt_modified, effect_flag
from ed_users
</sql>
<insert id="insert" parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User">
insert into ed_users(
<if test="userId != null and userId !='' ">user_id,</if>
<if test="userName != null and userName !='' ">user_name,</if>
<if test="workNumber != null and workNumber !='' ">work_number,</if>
<if test="mobile != null and mobile !='' ">mobile,</if>
<if test="userDept != null and userDept !='' ">user_dept,</if>
<if test="userTitle != null and userTitle !='' ">user_title,</if>
<if test="userPwd != null and userPwd !='' ">user_pwd,</if>
<if test="joinTime != null">join_time,</if>
<if test="isPublished != null">is_published,</if>
<if test="salt != null and salt !='' ">salt,</if>
<if test="userStatus != null and userStatus !='' ">user_status,</if>
<if test="internshipEndDate != null">internship_end_date,</if>
<if test="creator != null and creator !='' ">creator,</if>
<if test="creatorName != null and creatorName !='' ">creator_name,</if>
gmt_create,
effect_flag)
values (
<if test="userId != null and userId !='' ">#{userId},</if>
<if test="userName != null and userName !='' ">#{userName},</if>
<if test="workNumber != null and workNumber !='' ">#{workNumber},</if>
<if test="mobile != null and mobile !='' ">#{mobile},</if>
<if test="userDept != null and userDept !='' ">#{userDept},</if>
<if test="userTitle != null and userTitle !='' ">#{userTitle},</if>
<if test="userPwd != null and userPwd !='' ">#{userPwd},</if>
<if test="joinTime != null">#{joinTime},</if>
<if test="isPublished != null">#{isPublished},</if>
<if test="salt != null and salt !='' ">#{salt},</if>
<if test="userStatus != null and userStatus !='' ">#{userStatus},</if>
<if test="internshipEndDate != null">#{internshipEndDate},</if>
<if test="creator != null and creator !='' ">#{creator},</if>
<if test="creatorName != null and creatorName !='' ">#{creatorName},</if>
now(),
1
)
</insert>
<update id="modify" parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User">
update ed_users
<set>
<if test="userId != null and userId != ''">user_id = #{userId},</if>
<if test="userName != null and userName != ''">user_name = #{userName},</if>
<if test="workNumber != null and workNumber != ''">work_number = #{workNumber},</if>
<if test="mobile != null and mobile != ''">mobile = #{mobile},</if>
<if test="userDept != null and userDept != ''">user_dept = #{userDept},</if>
<if test="userTitle != null and userTitle != ''">user_title = #{userTitle},</if>
<if test="joinTime != null">join_time = #{joinTime},</if>
<if test="userStatus != null and userStatus != ''">user_status = #{userStatus},</if>
<if test="internshipEndDate != null">internship_end_date = #{internshipEndDate},</if>
<if test="modifier != null and modifier != ''">modifier = #{modifier},</if>
<if test="modifierName != null and modifierName != ''">modifier_name = #{modifierName},</if>
</set>
where user_id= #{userId}
</update>
<update id="publish" parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.PublishParam">
update ed_users
<trim prefix="SET" suffixOverrides=",">
is_published = 1,
<if test="modifier != null and modifier != ''">modifier = #{modifier},</if>
<if test="modifierName != null and modifierName != ''">modifier_name = #{modifierName},</if>
</trim>
where user_id IN
<foreach collection="userIds" item="userId" open="(" separator="," close=")">
#{userId}
</foreach>
</update>
<select id="search" parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords" resultMap="UserResultMap">
SELECT *
FROM ed_users
<where>
<!-- 条件 1按用户名或工号搜索 -->
<if test="keyWord != null and keyWord != ''">
(user_name LIKE CONCAT('%', #{keyWord}, '%') OR work_number LIKE CONCAT('%', #{keyWord}, '%'))
</if>
<!-- 条件 2按用户状态搜索 -->
<if test="userStatus != null and userStatus != ''">
<choose>
<when test="userStatus != 'all'">
AND user_status = #{userStatus}
</when>
</choose>
</if>
<!-- 条件 3按发布状态搜索 -->
<if test="isPublished != null and isPublished != ''">
<choose>
<when test="isPublished != 'all'">
AND is_published = CAST(#{isPublished} AS INT)
</when>
</choose>
</if>
and effect_flag=1
</where>
<!-- 动态排序条件 -->
<choose>
<when test="gmtCreate == 'asc' or gmtCreate == 'desc'">
ORDER BY gmt_create ${gmtCreate}
</when>
<when test="joinTime == 'asc' or joinTime == 'desc'">
ORDER BY join_time ${joinTime}
</when>
<when test="internEndDate == 'asc' or internEndDate == 'desc'">
ORDER BY internship_end_date ${internEndDate}
</when>
</choose>
LIMIT #{pageSize} OFFSET #{pageIndex}
</select>
<select id="getTotalCount" parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords" resultType="Integer">
SELECT COUNT(*)
FROM ed_users
<where>
<!-- 条件 1按用户名或工号搜索 -->
<if test="keyWord != null and keyWord != ''">
(user_name LIKE CONCAT('%', #{keyWord}, '%') OR work_number LIKE CONCAT('%', #{keyWord}, '%'))
</if>
<!-- 条件 2按用户状态搜索 -->
<if test="userStatus != null and userStatus != ''">
<choose>
<when test="userStatus != 'all'">
AND user_status = #{userStatus}
</when>
</choose>
</if>
<!-- 条件 3按发布状态搜索 -->
<if test="isPublished != null and isPublished != ''">
<choose>
<when test="isPublished != 'all'">
AND is_published = #{isPublished}
</when>
</choose>
</if>
</where>
<!-- 动态排序条件 -->
<choose>
<when test="gmtCreate == 'asc' or gmtCreate == 'desc'">
ORDER BY gmt_create ${gmtCreate}
</when>
<when test="joinTime == 'asc' or joinTime == 'desc'">
ORDER BY join_time ${joinTime}
</when>
<when test="internEndDate == 'asc' or internEndDate == 'desc'">
ORDER BY internship_end_date ${internEndDate}
</when>
</choose>
</select>
<select id="selectUserByWorkNumber" parameterType="String" resultMap="UserResultMap">
<include refid="selectUserVo" />
where work_number = #{workNumber}
</select>
<select id="getSingleUser" parameterType="String" resultMap="UserResultMap">
<include refid="selectUserVo" />
where user_id = #{userId}
</select>
<update id="deleteUser" parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords">
update ed_users
<set>
effect_flag=0,
modifier=#{modifier},
modifier_name=#{modifierName}
</set>
where user_id = #{userId}
</update>
</mapper>