ImGroupMapper.xml 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.yonge.cooleshow.biz.dal.dao.ImGroupDao">
  4. <resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.ImGroup">
  5. <id column="id_" jdbcType="VARCHAR" property="id"/>
  6. <result column="name_" jdbcType="VARCHAR" property="name"/>
  7. <result column="introduce_" jdbcType="VARCHAR" property="introduce"/>
  8. <result column="member_num_" jdbcType="INTEGER" property="memberNum"/>
  9. <result column="memo_" jdbcType="VARCHAR" property="memo"/>
  10. <result column="img_" jdbcType="VARCHAR" property="img"/>
  11. <result column="type_" jdbcType="VARCHAR" property="type"/>
  12. <result column="create_by_" property="createBy"/>
  13. <result column="auto_pass_flag_" property="autoPassFlag"/>
  14. <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
  15. <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
  16. </resultMap>
  17. <sql id="Base_Column_List">
  18. id_, name_, introduce_, member_num_, memo_, img_, type_,create_by_, create_time_, update_time_
  19. </sql>
  20. <update id="updateById" parameterType="com.yonge.cooleshow.biz.dal.entity.ImGroup">
  21. update im_group
  22. <set>
  23. <if test="et.name != null">
  24. name_ = #{et.name},
  25. </if>
  26. <if test="et.autoPassFlag != null">
  27. auto_pass_flag_ = #{et.autoPassFlag},
  28. </if>
  29. <if test="et.introduce != null and et.introduce != ''">
  30. introduce_ = #{et.introduce},
  31. </if>
  32. <if test="et.memo != null and et.memo != ''">
  33. memo_ = #{et.memo},
  34. </if>
  35. update_time_ = NOW()
  36. </set>
  37. where id_ = #{et.id}
  38. </update>
  39. <update id="updateMemberNum">
  40. UPDATE im_group ig
  41. LEFT JOIN (SELECT COUNT(id_) num_,group_id_ FROM im_group_member
  42. <if test="groupId != null">
  43. WHERE group_id_ = #{groupId}
  44. </if>
  45. GROUP BY group_id_) igm ON ig.id_ = igm.group_id_
  46. SET member_num_ = igm.num_
  47. WHERE ig.id_ = igm.group_id_
  48. </update>
  49. <select id="findAll" resultMap="BaseResultMap">
  50. SELECT ig.* FROM im_group ig
  51. LEFT JOIN im_group_member igm ON igm.group_id_ = ig.id_
  52. <where>
  53. <if test="imGroupDto.type != null and imGroupDto.type != ''">
  54. AND ig.type_ = #{imGroupDto.type}
  55. </if>
  56. <if test="imGroupDto.createUserId != null">
  57. AND ig.create_by_ = #{imGroupDto.createUserId}
  58. </if>
  59. <if test="imGroupDto.userId != null">
  60. AND igm.user_id_ = #{imGroupDto.userId}
  61. </if>
  62. <if test="imGroupDto.roleType != null">
  63. AND igm.role_type_ = #{imGroupDto.roleType}
  64. </if>
  65. <if test="imGroupDto.search != null and imGroupDto.search != ''">
  66. AND (ig.id_ = #{imGroupDto.search} OR
  67. ig.name_ LIKE CONCAT('%',#{imGroupDto.search},'%') OR ig.introduce_ LIKE CONCAT('%',#{imGroupDto.search},'%'))
  68. </if>
  69. </where>
  70. ORDER BY id_ DESC
  71. </select>
  72. <resultMap id="ImGroupResultDto" type="com.yonge.cooleshow.biz.dal.dto.ImGroupResultDto" extends="BaseResultMap">
  73. <result property="existFlag" column="existFlag"/>
  74. <result property="hasWaitAuditFlag" column="hasWaitAuditFlag"/>
  75. </resultMap>
  76. <select id="queryTeacherFun" resultMap="ImGroupResultDto">
  77. SELECT ig.*,
  78. CASE WHEN igm.id_ IS NULL THEN 0 ELSE 1 END existFlag,
  79. CASE WHEN igma.id_ IS NULL THEN 0 ELSE 1 END hasWaitAuditFlag
  80. FROM im_group ig
  81. LEFT JOIN im_group_member igm ON (ig.id_ = igm.group_id_ AND igm.user_id_ = #{imGroupDto.userId} <if test="imGroupDto.roleType != null"> AND igm.role_type_ = #{imGroupDto.roleType} </if>)
  82. LEFT JOIN im_group_member_audit igma ON igma.group_id_ = ig.id_ AND igma.audit_status_ = 'AUDITING' AND igma.user_id_ = igm.user_id_
  83. WHERE ig.create_by_ = #{imGroupDto.createUserId}
  84. <if test="imGroupDto.type != null and imGroupDto.type != ''">
  85. AND ig.type_ = #{imGroupDto.type}
  86. </if>
  87. <if test="imGroupDto.search != null and imGroupDto.search != ''">
  88. AND (ig.id_ = #{imGroupDto.search} OR
  89. ig.name_ LIKE CONCAT('%',#{imGroupDto.search},'%') OR ig.introduce_ LIKE CONCAT('%',#{imGroupDto.search},'%'))
  90. </if>
  91. GROUP BY ig.id_
  92. </select>
  93. <insert id="batchInsert" parameterType="com.yonge.cooleshow.biz.dal.entity.ImHistoryMessage">
  94. insert into im_history_message(msgUID_,fromUserId_,targetId_,targetType_,
  95. GroupId_,busChannel_,classname_,content_,
  96. extraContent_,dateTime_,source_,isDiscard_,
  97. isSensitiveWord_,isForbidden_,isNotForward_,
  98. groupUserIds_,appId_)
  99. values
  100. <foreach collection="list" separator="," item="item" >
  101. (#{item.msgUID,jdbcType=VARCHAR},#{item.fromUserId,jdbcType=VARCHAR},#{item.targetId,jdbcType=VARCHAR},
  102. #{item.targetType},#{item.groupId,jdbcType=VARCHAR},#{item.busChannel,jdbcType=VARCHAR},
  103. #{item.classname,jdbcType=VARCHAR},#{item.content,jdbcType=VARCHAR},#{item.extraContent,jdbcType=VARCHAR},
  104. #{item.dateTime,jdbcType=VARCHAR},#{item.source,jdbcType=VARCHAR},#{item.isDiscard,jdbcType=VARCHAR},
  105. #{item.isSensitiveWord,jdbcType=VARCHAR},#{item.isForbidden,jdbcType=VARCHAR},#{item.isNotForward,jdbcType=VARCHAR},
  106. #{item.groupUserIds,jdbcType=VARCHAR},#{item.appId,jdbcType=VARCHAR})
  107. </foreach>
  108. </insert>
  109. </mapper>