CeDo
2021-04-12 c3ce38cb41d4e4a7d036576b7be52ec2d8c3e724
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
package com.panzhihua.service_dangjian.dao;
 
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.partybuilding.PageActivityMembersVO;
import com.panzhihua.common.model.vos.partybuilding.PartyBuildingActivityVO;
import com.panzhihua.service_dangjian.model.dos.ComPbActivityDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
 
import java.util.List;
 
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 党员活动
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2020-11-30 17:59
 **/
@Mapper
public interface ComBpActivityDAO extends BaseMapper<ComPbActivityDO> {
    //    @Select("<script> " +
//            " <where>" +
//            "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
//            " </if> " +
//            "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
//            " </if> " +
//            "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
//            " </if> " +
//            " </where>" +
//            "</script>")
    @Select("<script> " +
            "SELECT\n" +
            "a.id,\n" +
            "a.name,\n" +
            "a.address,\n" +
            "a.status,\n" +
            "a.create_at releaseTimeBegin,\n" +
            "a.activity_time_begin,\n" +
            "a.activity_time_end,\n" +
            "a.enroll_time_begin,\n" +
            "a.release_time,\n" +
            "a.enroll_time_end \n" +
            "FROM\n" +
            "com_pb_activity_member m\n" +
            "JOIN com_pb_activity a ON m.activity_id = a.id \n" +
            "WHERE\n" +
            "m.member_id = #{id} \n" +
            "<if test='name != null and name.trim() != &quot;&quot;'>" +
            "AND a.`name` like concat (#{name},'%')  \n" +
            " </if> " +
            "<if test='releaseTimeBegin != null '>" +
            "AND a.create_at BETWEEN #{releaseTimeBegin} \n" +
            "AND #{releaseTimeEnd} \n" +
            " </if> " +
            "<if test='activityTimeBegin != null '>" +
            "AND a.activity_time_begin BETWEEN #{activityTimeBegin} \n" +
            "AND #{activityTimeEnd}" +
            " </if> " +
            "</script>")
    List<PartyBuildingActivityVO> listPartyMemberActivities(PartyBuildingActivityVO partyBuildingActivityVO);
 
 
    @Select("<script> " +
            "SELECT\n" +
            "a.id,\n" +
            "a.name,\n" +
            "a.address,\n" +
            "a.status,\n" +
            "a.release_time,\n" +
            "a.activity_time_begin,\n" +
            "a.activity_time_end,\n" +
            "a.enroll_time_begin,\n" +
            "a.cover,\n" +
            "if(u.type=3 ,'管理员',u.name)createByName,\n" +
            "a.enroll_time_end \n" +
            "FROM\n" +
            "com_pb_activity a\n" +
            "left join sys_user u on a.create_by=u.user_id \n" +
            "where a.community_id=#{partyBuildingActivityVO.communityId}\n" +
            " and a.`status` not in(5,6) \n"+
            "<if test='partyBuildingActivityVO.name != null and partyBuildingActivityVO.name.trim() != &quot;&quot;'>" +
            "and a.name = #{partyBuildingActivityVO.name} \n" +
            " </if> " +
            "<if test='partyBuildingActivityVO.status != null and partyBuildingActivityVO.status != 0 and partyBuildingActivityVO.isAppliets ==null '>" +
            "AND a.`status` = #{partyBuildingActivityVO.status} \n" +
            " </if> " +
            "<if test='partyBuildingActivityVO.status != null and partyBuildingActivityVO.status != 0 and partyBuildingActivityVO.isAppliets !=null and partyBuildingActivityVO.isAppliets==1'>" +
            "AND a.`status` in (3,4) \n" +
            " </if> " +
            "<if test='partyBuildingActivityVO.releaseTimeBegin != null '>" +
            "AND a.release_time BETWEEN #{partyBuildingActivityVO.releaseTimeBegin} \n" +
            "AND #{partyBuildingActivityVO.releaseTimeEnd} \n" +
            " </if> " +
            "<if test='partyBuildingActivityVO.activityTimeBegin != null '>" +
            "AND a.activity_time_begin BETWEEN #{partyBuildingActivityVO.activityTimeBegin} \n" +
            "AND #{partyBuildingActivityVO.activityTimeEnd}" +
            " </if> " +
            "order by a.create_at desc " +
            "</script>")
    IPage<PartyBuildingActivityVO> pageActivity(Page page, @Param("partyBuildingActivityVO") PartyBuildingActivityVO partyBuildingActivityVO);
 
    @Select("select t.id from (\n" +
            "SELECT \n" +
            "a.participation_lowest_num,\n" +
            "a.name,\n" +
            "a.id,\n" +
            "COUNT(m.id)num\n" +
            "FROM\n" +
            "com_pb_activity a\n" +
            "LEFT JOIN com_pb_activity_member m ON a.id = m.activity_id\n" +
            "WHERE a.`status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),a.enroll_time_end)<=0\n" +
            "GROUP BY a.id)t where t.num<t.participation_lowest_num")
    List<Long> selectTimedTaskPartyBuildingActivity();
 
    @Select("SELECT \n" +
            "u.user_id\n" +
            "FROM\n" +
            "com_pb_activity_member m\n" +
            "JOIN com_pb_member r on m.member_id=r.id\n" +
            "join sys_user u on r.id_card=u.id_card and u.type=1 \n" +
            "where m.activity_id=#{activityId}")
    List<Long> selectTimedTaskPartyBuildingActivityUserids(Long activityId);
 
    @Update("<script> " +
            "update com_pb_activity set `status`=6 WHERE id in \n" +
            "<foreach item=\"item\" collection=\"ids\" separator=\",\" open=\"(\" close=\")\" index=\"\"> \n" +
            "#{item}\n" +
            "</foreach>\n" +
            "</script>")
    int updateBatchIds(@Param("ids") List<Long> ids);
 
    @Update("update com_pb_activity set status=2 where `status`=1 and TIMESTAMPDIFF(MINUTE,SYSDATE(),release_time)<=0")
    int updateStatusToNotBegin();
 
    @Update("update com_pb_activity set status=3 where `status`=2 and TIMESTAMPDIFF(MINUTE,SYSDATE(),enroll_time_begin)<=0")
    int updateStatusToSign();
 
    @Update("update com_pb_activity set status=(if(TIMESTAMPDIFF(MINUTE,SYSDATE(),activity_time_end)<=0,5,4)) where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),enroll_time_end)<=0")
    int updateStatusToActiveOrEnd();
    @Select("select type,name from sys_user where user_id=#{createBy}")
    LoginUserInfoVO selectUserInfoByUserId(Long createBy);
 
    /**
     * 根据社区id查询社区名称
     * @param communityId   社区id
     * @return  社区名字
     */
    @Select("select name from com_act where community_id=#{communityId}")
    String selectCommunityNameByCommunityId(Long communityId);
}