<?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.panzhihua.service_community.dao.ComActActSignDAO">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActActSignDO">
|
<id column="id" property="id" />
|
<result column="activity_id" property="activityId" />
|
<result column="user_id" property="userId" />
|
<result column="create_at" property="createAt" />
|
<result column="sign_identity" property="signIdentity" />
|
<result column="status" property="status" />
|
<result column="reason" property="reason" />
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
id, activity_id, user_id, create_at, sign_identity
|
</sql>
|
|
<select id="getSignLists" resultType="com.panzhihua.common.model.vos.community.ComActActSignExcelVO">
|
SELECT
|
caas.create_at,
|
caas.times,
|
CASE
|
WHEN caas.status = 1 THEN
|
'已报名' ELSE '已取消'
|
END status,
|
caas.reason,
|
IF(r.times IS NULL, 0, r.award * r.times) AS award,
|
t.limit,
|
su.`name`,
|
su.phone,
|
su.tags,
|
caas.sign_identity AS identity
|
|
FROM
|
com_act_act_sign caas
|
LEFT JOIN sys_user su ON caas.user_id = su.user_id
|
left join com_act_activity t on caas.activity_id = t.id
|
LEFT JOIN (
|
SELECT * FROM (
|
SELECT * FROM com_act_act_regist
|
WHERE activity_id = #{activitySignVO.activityId}
|
ORDER BY id DESC LIMIT 1000000
|
) temp GROUP BY activity_id, user_id
|
) r ON caas.activity_id = r.activity_id AND caas.user_id = r.user_id
|
where caas.activity_id = #{activitySignVO.activityId}
|
<if test="activitySignVO.phone != null and activitySignVO.phone !=''">
|
AND su.phone = #{activitySignVO.phone}
|
</if>
|
<if test='activitySignVO.status != null'>
|
AND caas.status = #{activitySignVO.status}
|
</if>
|
<if test="activitySignVO.name != null and activitySignVO.name !=''">
|
AND su.`name` = #{activitySignVO.name}
|
</if>
|
<if test="activitySignVO.createAt != null and activitySignVO.createAt !=''">
|
AND caas.create_at = #{activitySignVO.createAt}
|
</if>
|
<if test="activitySignVO.tags != null and activitySignVO.tags !=''">
|
AND su.tags like concat('%', #{activitySignVO.tags}, '%')
|
</if>
|
order by caas.create_at desc
|
</select>
|
|
<select id="selectNeedEvaluateSignRecords" resultMap="BaseResultMap">
|
SELECT s.id,s.activity_id,s.user_id,s.create_at,s.sign_identity
|
FROM `com_act_act_sign` s
|
LEFT JOIN `com_act_act_evaluate` e
|
ON s.activity_id=e.activity_id AND s.user_id=e.user_id
|
WHERE s.activity_id IN
|
<foreach collection="activityIds" item="id" index="index" open="(" close=")" separator=",">
|
#{id}
|
</foreach> AND e.id IS NULL
|
</select>
|
<select id="listActivitySign" resultType="com.panzhihua.common.model.vos.community.ActivitySignVO">
|
SELECT u.user_id id, u.image_url, u.name, u.nick_name,
|
a.sign_identity AS identity,
|
u.phone, u.tags, a.create_at, a.sign_identity, a.status , a.times,
|
a.reason, IF(r.times IS NULL, 0, r.award * r.times) AS award, t.limit, a.is_invite
|
FROM com_act_act_sign a
|
JOIN sys_user u ON a.user_id = u.user_id
|
left join com_act_activity t on a.activity_id = t.id
|
LEFT JOIN (
|
SELECT * FROM (
|
SELECT * FROM com_act_act_regist
|
WHERE activity_id = #{activitySignVO.activityId}
|
ORDER BY id DESC LIMIT 1000000
|
) temp GROUP BY activity_id, user_id
|
) r ON a.activity_id = r.activity_id AND a.user_id = r.user_id
|
WHERE a.activity_id = #{activitySignVO.activityId}
|
<if test='activitySignVO.phone != null and activitySignVO.phone != ""'>
|
AND u.phone = #{activitySignVO.phone}
|
</if>
|
<if test='activitySignVO.status != null'>
|
AND a.status = #{activitySignVO.status}
|
</if>
|
<if test='activitySignVO.tags != null and activitySignVO.tags != ""'>
|
AND u.tags like concat('%',#{activitySignVO.tags},'%')
|
</if>
|
<if test='activitySignVO.name != null and activitySignVO.name != ""'>
|
AND u.`name` = #{activitySignVO.name}
|
</if>
|
<if test='activitySignVO.identity != null'>
|
AND a.sign_identity = #{activitySignVO.identity}
|
</if>
|
order by a.create_at desc
|
</select>
|
<select id="listActivitySignParty" resultType="com.panzhihua.common.model.vos.community.ActivitySignVO">
|
SELECT u.user_id id, u.image_url, cpm.name, u.nick_name,
|
CASE WHEN t.type = 1 and a.is_volunteer = 1 THEN '志愿者' WHEN t.type = 1 and a.is_volunteer = 0 THEN '居民' WHEN t.type=2 THEN '居民' ELSE '党员' END identity,
|
u.phone, u.tags, a.create_at, a.is_volunteer, a.status , a.times,
|
a.reason, IF(r.times IS NULL, 0, r.award * r.times) AS award, t.limit
|
FROM com_act_act_sign a
|
JOIN sys_user u ON a.user_id = u.user_id
|
JOIN com_pb_member cpm on a.user_id = cpm.user_id
|
left join com_act_activity t on a.activity_id = t.id
|
LEFT JOIN (
|
SELECT * FROM (
|
SELECT * FROM com_act_act_regist
|
WHERE activity_id = #{activitySignVO.activityId}
|
ORDER BY id DESC LIMIT 1000000
|
) temp GROUP BY activity_id, user_id
|
) r ON a.activity_id = r.activity_id AND a.user_id = r.user_id
|
WHERE a.activity_id = #{activitySignVO.activityId}
|
<if test='activitySignVO.phone != null and activitySignVO.phone != ""'>
|
AND u.phone = #{activitySignVO.phone}
|
</if>
|
<if test='activitySignVO.status != null'>
|
AND a.status = #{activitySignVO.status}
|
</if>
|
<if test='activitySignVO.tags != null and activitySignVO.tags != ""'>
|
AND u.tags like concat('%',#{activitySignVO.tags},'%')
|
</if>
|
<if test='activitySignVO.name != null and activitySignVO.name != ""'>
|
AND u.`name` = #{activitySignVO.name}
|
</if>
|
<if test='activitySignVO.identity != null and activitySignVO.identity != "" and activitySignVO.identity==1'>
|
AND u.is_partymember = 0 and a.is_volunteer=0
|
</if>
|
<if test='activitySignVO.identity != null and activitySignVO.identity != "" and activitySignVO.identity==2'>
|
AND u.is_partymember = 1
|
</if>
|
<if test='activitySignVO.identity != null and activitySignVO.identity != "" and activitySignVO.identity==3'>
|
AND a.is_volunteer=1
|
</if>
|
<if test='activitySignVO.type != null and activitySignVO.type != 0'>
|
AND a.is_volunteer=#{activitySignVO.type}-1
|
</if>
|
order by a.create_at desc
|
</select>
|
<select id="selectList" resultType="com.panzhihua.common.model.vos.community.ActivitySignVO">
|
SELECT s.id,s.activity_id,s.user_id,s.create_at,s.sign_identity, r.times, r.times * r.award AS award
|
FROM `com_act_act_sign` s
|
LEFT JOIN (
|
SELECT * FROM (
|
SELECT * FROM com_act_act_regist
|
WHERE user_id = #{userId} AND type = 1
|
ORDER BY id DESC LIMIT 1000000
|
) temp GROUP BY activity_id
|
) r ON s.activity_id = r.activity_id
|
WHERE s.user_id = #{userId} AND s.status = 1
|
</select>
|
<select id="listSignInRecord" resultType="com.panzhihua.common.model.vos.community.ActivitySignInRecordVO">
|
SELECT s.activity_id, s.create_at, s.user_id, u.name, a.limit, r.type, r.times
|
FROM com_act_act_sign s
|
LEFT JOIN sys_user u ON s.user_id = u.user_id
|
LEFT JOIN com_act_activity a ON s.activity_id = a.id
|
LEFT JOIN (
|
SELECT * FROM (
|
SELECT * FROM com_act_act_regist
|
WHERE activity_id = #{id}
|
ORDER BY id DESC LIMIT 1000000
|
) temp GROUP BY activity_id, user_id
|
) r ON s.activity_id = r.activity_id AND s.user_id = r.user_id
|
WHERE s.activity_id = #{id}
|
</select>
|
<select id="listActivitySigns" resultType="com.panzhihua.common.model.vos.community.ActivitySignVO">
|
SELECT
|
u.user_id id,
|
u.image_url,
|
u.NAME,
|
u.nick_name,
|
u.openid,
|
a.sign_identity AS identity,
|
u.phone,
|
u.tags,
|
a.create_at,
|
a.sign_identity,
|
a.STATUS,
|
a.reason,
|
t.limit
|
FROM
|
com_act_act_sign a
|
JOIN sys_user u ON a.user_id = u.user_id
|
LEFT JOIN com_act_activity t ON a.activity_id = t.id
|
WHERE
|
a.activity_id = #{activitySignVO.activityId}
|
<if test='activitySignVO.phone != null and activitySignVO.phone != ""'>
|
AND u.phone = #{activitySignVO.phone}
|
</if>
|
<if test='activitySignVO.status != null'>
|
AND a.status = #{activitySignVO.status}
|
</if>
|
<if test='activitySignVO.name != null and activitySignVO.name != ""'>
|
AND u.`name` = #{activitySignVO.name}
|
</if>
|
<if test='activitySignVO.identity != null'>
|
AND a.sign_identity = #{activitySignVO.identity}
|
</if>
|
ORDER BY a.create_at DESC
|
</select>
|
</mapper>
|