|
@@ -18,6 +18,60 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
<result property="affiche" column="affiche"/>
|
|
|
<result property="status" column="status"/>
|
|
|
</resultMap>
|
|
|
-
|
|
|
-
|
|
|
+ <resultMap type="com.zhongzheng.modules.inform.vo.InformVo" id="InformVo">
|
|
|
+ <result property="informId" column="inform_id"/>
|
|
|
+ <result property="informType" column="inform_type"/>
|
|
|
+ <result property="informName" column="inform_name"/>
|
|
|
+ <result property="informWay" column="inform_way"/>
|
|
|
+ <result property="classifyId" column="classify_id"/>
|
|
|
+ <result property="issueStatus" column="issue_status"/>
|
|
|
+ <result property="issueTime" column="issue_time"/>
|
|
|
+ <result property="receiptStatus" column="receipt_status"/>
|
|
|
+ <result property="affiche" column="affiche"/>
|
|
|
+ <result property="status" column="status"/>
|
|
|
+ <result property="userNum" column="user_num"/>
|
|
|
+ <result property="sendTime" column="send_time"/>
|
|
|
+ <result property="userStatus" column="user_status"/>
|
|
|
+ <result property="receiptNum" column="receipt_num"/>
|
|
|
+ </resultMap>
|
|
|
+ <select id="listInform" parameterType="com.zhongzheng.modules.inform.bo.InformQueryBo" resultMap="InformVo">
|
|
|
+ SELECT
|
|
|
+ i.inform_name,
|
|
|
+ i.inform_way,
|
|
|
+ i.create_by,
|
|
|
+ i.inform_type,
|
|
|
+ (SELECT COUNT(iu.id) FROM inform_user iu where i.inform_id=iu.inform_id) as user_num,
|
|
|
+ (SELECT iu.send_time FROM inform_user iu where i.inform_id=iu.inform_id ORDER BY iu.send_time ASC limit 1) as send_time,
|
|
|
+ i.`status`,
|
|
|
+ IF((SELECT COUNT(iu.inform_id) FROM inform_user iu where i.inform_id=iu.inform_id and iu.send_status=1)=0,2,
|
|
|
+ IF((SELECT COUNT(iu.inform_id) FROM inform_user iu where i.inform_id=iu.inform_id and iu.send_status=1)=(SELECT COUNT(iu.inform_id) FROM inform_user iu where i.inform_id=iu.inform_id),1,
|
|
|
+ IF((SELECT COUNT(iu.inform_id) FROM inform_user iu where i.inform_id=iu.inform_id and iu.send_status=1)<(SELECT COUNT(iu.inform_id) FROM inform_user iu where i.inform_id=iu.inform_id),3,4))) as user_status,
|
|
|
+ i.receipt_status,
|
|
|
+ (SELECT COUNT(iu.inform_id) FROM inform_user iu where i.inform_id=iu.inform_id and iu.send_status=1) as receipt_num
|
|
|
+ FROM
|
|
|
+ inform i
|
|
|
+ <if test="status != null and status.size()!=0 ">
|
|
|
+ AND i.status in
|
|
|
+ <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">
|
|
|
+ #{item}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="informType != null and informType != ''">
|
|
|
+ and i.inform_type = #{informType}
|
|
|
+ </if>
|
|
|
+ <if test="informName != null and informName != ''">
|
|
|
+ and i.inform_name = #{informName}
|
|
|
+ </if>
|
|
|
+ <if test="classifyId != null and classifyId != ''">
|
|
|
+ and i.classify_id = #{classifyId}
|
|
|
+ </if>
|
|
|
+ <if test="startTime != null and startTime != ''">
|
|
|
+ and (SELECT iu.send_time FROM inform_user iu where i.inform_id=iu.inform_id ORDER BY iu.send_time ASC limit 1) BETWEEN #{startTime} and #{endTime}
|
|
|
+ </if>
|
|
|
+ <if test="userStatus != null and userStatus != ''">
|
|
|
+ and IF((SELECT COUNT(iu.inform_id) FROM inform_user iu where i.inform_id=iu.inform_id and iu.send_status=1)=0,2,
|
|
|
+ IF((SELECT COUNT(iu.inform_id) FROM inform_user iu where i.inform_id=iu.inform_id and iu.send_status=1)=(SELECT COUNT(iu.inform_id) FROM inform_user iu where i.inform_id=iu.inform_id),1,
|
|
|
+ IF((SELECT COUNT(iu.inform_id) FROM inform_user iu where i.inform_id=iu.inform_id and iu.send_status=1)<(SELECT COUNT(iu.inform_id) FROM inform_user iu where i.inform_id=iu.inform_id),3,4))) = #{userStatus}
|
|
|
+ </if>
|
|
|
+ </select>
|
|
|
</mapper>
|