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

165 lines
8.1 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 id= #{id}
</update>
<update id="publish" parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User">
update ed_users
<trim prefix="SET" suffixOverrides=",">
is_published = 1
</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.request.user.SearchUserRequest" resultType="com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User">
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 = #{isPublished}
</when>
</choose>
</if>
</where>
<!-- 动态排序条件 -->
<choose>
<when test="sortBy != null and sortOrder != null">
<if test="sortBy == 'gmtCreate'">
ORDER BY gmt_create ${sortOrder}
</if>
<if test="sortBy == 'joinTime'">
ORDER BY join_time ${sortOrder}
</if>
<if test="sortBy == 'internEndDate'">
ORDER BY internship_end_date ${sortOrder}
</if>
</when>
<!-- 默认按工号的字典序排列 -->
<otherwise>
ORDER BY work_number ASC
</otherwise>
</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="String">
update ed_users
set effect_flag=0
where user_id = #{userId}
</update>
</mapper>