<?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.gx.obe.server.management.im.dao.GroupItemMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.gx.obe.server.management.im.entity.GroupItem"> <id column="GROUP_ITEM_ID" property="id"/> <result column="GROUP_ID" property="groupId"/> <result column="USER_ID" property="userId"/> <result column="ITEM_TYPE" property="itemType"/> <result column="NICK_NAME" property="nickName"/> </resultMap> <!-- 通用查询映射结果 --> <resultMap id="EmployeeResultMap" type="com.gx.obe.server.management.im.entity.Employee"> <id column="EMPLOYEE_ID" property="id"/> <result column="EMPLOYEE_NAME" property="employeeName"/> <result column="ACCOUNT" property="account"/> <result column="PASSWORD" property="password"/> <result column="NUMBER" property="number"/> <result column="AVATAR" property="avatar"/> <result column="POSITION" property="position"/> <result column="GENDER" property="gender"/> <result column="AGE" property="age"/> <result column="DEPARTMENTS" property="departments"/> <result column="EMAIL" property="email"/> <result column="MOBILE_PHONE" property="mobilePhone"/> <result column="COMPANY_TEL" property="companyTel"/> <result column="OTHER_TEL" property="otherTel"/> <result column="FAX_TEL" property="faxTel"/> <result column="ADDRESS" property="address"/> <result column="ZIPCODE" property="zipcode"/> <result column="BIRTHDAY" property="birthday"/> <result column="BLOOD_TYPE" property="bloodType"/> <result column="PERSONAL_WEB" property="personalWeb"/> <result column="SIGNATURE" property="signature"/> <result column="PERSONAL_NOTE" property="personalNote"/> <result column="USE_STATUS" property="useStatus"/> <result column="IP" property="ip"/> <result column="PORT" property="port"/> <result column="LINE_STATUS" property="lineStatus"/> <result column="LOGIN_TIME" property="loginTime"/> <result column="ONLINE_TIME" property="onlineTime"/> </resultMap> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> GROUP_ITEM_ID, GROUP_ID, USER_ID, ITEM_TYPE, NICK_NAME </sql> <!-- 批量更新 --> <update id="updateBatchList" parameterType="java.util.List"> UPDATE group_item <set> GROUP_ID = <foreach collection="GroupItemList" item="GroupItem" index="index" separator=" " open="case GROUP_ITEM_ID" close="end"> <if test="GroupItem.groupId != null"> when #{GroupItem.id} then #{GroupItem.groupId} </if> <if test="GroupItem.groupId == null"> when #{GroupItem.id} then GROUP_ID </if> </foreach> USER_ID = <foreach collection="GroupItemList" item="GroupItem" index="index" separator=" " open="case GROUP_ITEM_ID" close="end"> <if test="GroupItem.userId != null"> when #{GroupItem.id} then #{GroupItem.userId} </if> <if test="GroupItem.userId == null"> when #{GroupItem.id} then USER_ID </if> </foreach> ITEM_TYPE = <foreach collection="GroupItemList" item="GroupItem" index="index" separator=" " open="case GROUP_ITEM_ID" close="end"> <if test="GroupItem.itemType != null"> when #{GroupItem.id} then #{GroupItem.itemType} </if> <if test="GroupItem.itemType == null"> when #{GroupItem.id} then ITEM_TYPE </if> </foreach> NICK_NAME = <foreach collection="GroupItemList" item="GroupItem" index="index" separator=" " open="case GROUP_ITEM_ID" close="end"> <if test="GroupItem.nickName != null"> when #{GroupItem.id} then #{GroupItem.nickName} </if> <if test="GroupItem.nickName == null"> when #{GroupItem.id} then NICK_NAME </if> </foreach> </set> <where> GROUP_ITEM_ID IN <foreach collection="GroupItemList" item="GroupItem" index="index" separator="," open="(" close=")"> #{GroupItem.id} </foreach> </where> </update> <!-- 批量插入--> <insert id="insertByBatch" parameterType="java.util.List"> insert into group_item ( GROUP_ITEM_ID, GROUP_ID, USER_ID, ITEM_TYPE, NICK_NAME ) values <foreach collection="GroupItemList" item="GroupItem" index="index" open="" close="" separator=","> ( #{GroupItem.id}, #{GroupItem.groupId}, #{GroupItem.userId}, #{GroupItem.itemType}, #{GroupItem.nickName} ) </foreach> </insert> <!-- 指定字段修改 --> <update id="updateAssignProperty"> UPDATE group_item <set> <foreach collection="attributes" item="attribute" index="index" open="" close="" separator=","> <if test="attribute == 'groupId'"> GROUP_ID = #{GroupItem.groupId} </if> <if test="attribute == 'userId'"> USER_ID = #{GroupItem.userId} </if> <if test="attribute == 'itemType'"> ITEM_TYPE = #{GroupItem.itemType} </if> <if test="attribute == 'nickName'"> NICK_NAME = #{GroupItem.nickName} </if> </foreach> </set> <where> GROUP_ITEM_ID = #{GroupItem.id} </where> </update> <!-- 批量指定字段修改 --> <update id="batchUpdateProperty"> UPDATE group_item <set> <foreach collection="attributes" item="attribute" index="index" open="" close="" separator=","> <if test="attribute == 'groupId'"> GROUP_ID = <foreach collection="GroupItemList" item="GroupItem" index="index" separator=" " open="case GROUP_ITEM_ID" close="end"> when #{GroupItem.id} then #{GroupItem.groupId} </foreach> </if> <if test="attribute == 'userId'"> USER_ID = <foreach collection="GroupItemList" item="GroupItem" index="index" separator=" " open="case GROUP_ITEM_ID" close="end"> when #{GroupItem.id} then #{GroupItem.userId} </foreach> </if> <if test="attribute == 'itemType'"> ITEM_TYPE = <foreach collection="GroupItemList" item="GroupItem" index="index" separator=" " open="case GROUP_ITEM_ID" close="end"> when #{GroupItem.id} then #{GroupItem.itemType} </foreach> </if> <if test="attribute == 'nickName'"> NICK_NAME = <foreach collection="GroupItemList" item="GroupItem" index="index" separator=" " open="case GROUP_ITEM_ID" close="end"> when #{GroupItem.id} then #{GroupItem.nickName} </foreach> </if> </foreach> </set> <where> GROUP_ITEM_ID IN <foreach collection="GroupItemList" item="GroupItem" index="index" separator="," open="(" close=")"> #{GroupItem.id} </foreach> </where> </update> <!-- 获得群组成员 --> <select id="getGroupItemByGroupId" resultMap="EmployeeResultMap"> SELECT t.* FROM employee t LEFT JOIN group_item g ON t.EMPLOYEE_ID = g.USER_ID WHERE g.GROUP_ID = #{groupId} </select> </mapper>