mitao
2025-02-21 31573d6180d15ef65ed0df9c2732495f40b12663
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
package com.panzhihua.service_community.dao;
 
import java.util.List;
import java.util.Map;
 
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
 
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.dtos.community.ExcelElderAuthDTO;
import com.panzhihua.common.model.dtos.community.PageComEldersRecordsDTO;
import com.panzhihua.common.model.dtos.community.PageEldersAuthDTO;
import com.panzhihua.common.model.dtos.community.PageEldersAuthRecordDTO;
import com.panzhihua.common.model.vos.community.ComEldersAuthRecordForCommunityVO;
import com.panzhihua.common.model.vos.community.ComEldersAuthRecordVO;
import com.panzhihua.common.model.vos.community.EldersAuthDetailsVO;
import com.panzhihua.common.model.vos.community.EldersAuthVO;
import com.panzhihua.common.model.vos.elders.ComEldersAuthHistoryVO;
import com.panzhihua.common.model.vos.user.SysUserVO;
import com.panzhihua.service_community.model.dos.EldersAuthDO;
 
/**
 * DAO
 *
 * @author cedoo email:cedoo(a)qq.com
 * @version 1.0
 * @since 1.0
 */
@Mapper
public interface EldersAuthDAO extends BaseMapper<EldersAuthDO> {
 
    @Select("<script> " + "SELECT ea.id, ea.create_at, ea.create_by, ea.update_by, ea.update_at,"
        + " ea.auth_user_name , ea.id_card, ea.birth_day, ea.family_user_id ,"
        + " ea.domicile, ea.submit_user_id,  u.phone as submitUserAccount , ea.video_url, "
        + " u.name as submitUserName, ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) as age \n" + "FROM " + " ("
        + " SELECT MAX(id) AS id , DATE_FORMAT(create_at, '%Y-%m') AS yearMonth\n" + " FROM com_elders_auth \n"
        + " GROUP BY id_card, yearMonth\n" + " ) t  " + " LEFT JOIN com_elders_auth ea ON t.id = ea.id  "
        + " LEFT JOIN sys_user  u ON ea.submit_user_id = u.user_id\n"
        + " LEFT JOIN com_act ac ON u.community_id = ac.community_id\n" + " <where> " +
 
        "<if test='pageEldersAuthDTO.communityId != null'>"
        + "  AND ac.community_id = ${pageEldersAuthDTO.communityId} " + " </if> " +
 
        "<if test='pageEldersAuthDTO.sumitUserId != null'>"
        + " AND ea.submit_user_id = #{pageEldersAuthDTO.sumitUserId} " + " </if> "
        + "<if test='pageEldersAuthDTO.idCard != null'>" + " AND ea.id_card = #{pageEldersAuthDTO.idCard} " + " </if> "
        + "<if test='pageEldersAuthDTO.authUserName != null'>"
        + " AND ea.auth_user_name like concat('%', #{pageEldersAuthDTO.authUserName}, '%' ) " + " </if> "
        + "<if test='pageEldersAuthDTO.type == 1 '>"
        + "  AND  DATE_FORMAT(ea.create_at, '%c') = #{pageEldersAuthDTO.month} " + " </if> "
        + "<if test='pageEldersAuthDTO.type == 2 '>" + "<if test='pageEldersAuthDTO.createAtStart != null'>"
        + " AND ea.create_at <![CDATA[>=]]> #{pageEldersAuthDTO.createAtStart} " + " </if> "
        + "<if test='pageEldersAuthDTO.createAtEnd != null'>"
        + " AND ea.create_at <![CDATA[<=]]> #{pageEldersAuthDTO.createAtEnd} " + " </if> " + " </if> " + " </where>"
        + " ORDER BY ea.${pageEldersAuthDTO.sortBy} ${pageEldersAuthDTO.order}  " + "</script>")
    IPage<EldersAuthVO> selectByPage(Page page, @Param("pageEldersAuthDTO") PageEldersAuthDTO pageEldersAuthDTO);
 
    @Select("<script> " + "SELECT ea.id, ea.create_at, ea.create_by, ea.update_by, ea.update_at,"
        + " ea.auth_user_name , ea.id_card, ea.birth_day, ea.family_user_id,ea.type, "
        + " ea.domicile, ea.submit_user_id,  u.phone as submitUserAccount  , ea.video_url , ea.family_user_id, "
        + " u.name as submitUserName, ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) as age \n"
        + "FROM  com_elders_auth ea LEFT JOIN sys_user  u ON ea.submit_user_id = u.user_id\n" + " where ea.id = #{id}"
        + "</script>")
    EldersAuthDetailsVO selectDetails(@Param("id") Long id);
 
    @Select("<script> " + " SELECT \n"
        + " (@rownum:=@rownum+1) as seq,  '高龄补贴' AS subsidy, '' AS batch, ea.auth_user_name AS NAME,  ea.id_card, \n"
        + " CASE\n" + "    WHEN ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) > 99  THEN \"100周岁(含)以上\"\n"
        + "    WHEN ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) > 89  THEN \"90-99周岁\"\n"
        + "    WHEN ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) >= 80 THEN \"80-89周岁\"\n" + "    ELSE \"未达到年龄\"\n"
        + " END AS TYPE, DATE_FORMAT(ea.create_at, '%Y-%m') AS yearMonth,\n" + " CASE\n"
        + "    WHEN ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) > 99  THEN \"800\"\n"
        + "    WHEN ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) > 89  THEN \"200\"\n"
        + "    WHEN ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) >= 80 THEN \"50\"\n" + "    ELSE \"未达到年龄\"\n"
        + " END AS payCount,\n"
        + " ac.name AS communityName, '' AS 'group', '' AS telphone ,  ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) AS age\n"
        + " FROM \n" + " (" + " SELECT MAX(id) AS id , DATE_FORMAT(create_at, '%Y-%m') AS yearMonth, @rownum:=0 \n"
        + " FROM com_elders_auth \n" + " GROUP BY id_card, yearMonth\n" + " ) t \n"
        + " LEFT JOIN com_elders_auth ea ON t.id = ea.id \n"
        + " LEFT JOIN sys_user u ON ea.submit_user_id = u.user_id\n"
        + " LEFT JOIN com_act ac ON u.community_id = ac.community_id\n" + " <where> " +
 
        "<if test='pageEldersAuthDTO.communityId != null'>"
        + "  AND ac.community_id = ${pageEldersAuthDTO.communityId} " + " </if> " +
 
        "<if test='pageEldersAuthDTO.ids != null and pageEldersAuthDTO.ids.length>0 '>" + " AND ea.id in "
        + "<foreach collection='pageEldersAuthDTO.ids' item='id' index='index' open='(' close=')' separator=',' >\n"
        + "  #{id}" + "</foreach>" + " </if> " +
 
        "<if test='pageEldersAuthDTO.ids == null or pageEldersAuthDTO.ids.length==0 '>"
        + "<if test='pageEldersAuthDTO.sumitUserId != null'>"
        + " AND ea.submit_user_id = #{pageEldersAuthDTO.sumitUserId} " + " </if> "
        + "<if test='pageEldersAuthDTO.idCard != null'>" + " AND ea.id_card = #{pageEldersAuthDTO.idCard} " + " </if> "
        + "<if test='pageEldersAuthDTO.authUserName != null'>"
        + " AND ea.auth_user_name like concat('%', #{pageEldersAuthDTO.authUserName}, '%' ) " + " </if> "
        + "<if test='pageEldersAuthDTO.type == 1 '>"
        + "  AND  DATE_FORMAT(ea.create_at, '%c') = #{pageEldersAuthDTO.month} " + " </if> "
        + "<if test='pageEldersAuthDTO.type == 2 '>" + "<if test='pageEldersAuthDTO.createAtStart != null'>"
        + " AND ea.create_at <![CDATA[>=]]> #{pageComShopOrderSearchDTO.createAtStart} " + " </if> "
        + "<if test='pageEldersAuthDTO.createAtEnd != null'>"
        + " AND ea.create_at <![CDATA[<=]]> #{pageComShopOrderSearchDTO.createAtEnd} " + " </if> " + " </if> "
        + " </if> " + " </where>" + " ORDER BY ea.${pageEldersAuthDTO.sortBy} ${pageEldersAuthDTO.order}  "
        + "</script>")
    List<ExcelElderAuthDTO> selectByParams(@Param("pageEldersAuthDTO") PageEldersAuthDTO pageEldersAuthDTO);
 
    @Select("<script> " + "SELECT CONCAT(ap.province_name, ad.district_name) AS domicile\n"
        + "FROM com_mng_struct_area_province ap LEFT JOIN com_mng_struct_area_city ct ON ap.province_adcode = ct.province_adcode\n"
        + " LEFT JOIN com_mng_struct_area_district ad ON ct.city_adcode = ad.city_adcode "
        + "  WHERE substring(ad.district_adcode, 1, 6) = substring(#{idCard}, 1, 6) " + "</script>")
    String selectDomicile(@Param("idCard") String idCard);
 
    @Select("<script> "
        + " SELECT distinct t.id, t.yearMonth, au.`type`,  DATE_FORMAT(au.create_at,'%Y-%m-%d')  AS create_at,\n"
        + " case " + " when fed.id IS NOT NULL then true\n" + " ELSE false " + " END hasFeed "
        + " FROM ( SELECT MAX(id) AS id , DATE_FORMAT(create_at, '%Y-%m') AS yearMonth\n" + " FROM com_elders_auth \n"
        + " GROUP BY id_card, yearMonth\n" + " ) t  LEFT JOIN com_elders_auth au ON t.id = au.id\n"
        + " LEFT JOIN com_elders_auth_feedback fed ON t.id = fed.AUTH_ID\n" + " <where>"
        + " au.family_user_id = #{pageComEldersRecordsDTO.bigAgeid} " + "</where>"
        + "<if test='pageComEldersRecordsDTO.sortColumns!=null'>\n"
        + "ORDER BY ${pageComEldersRecordsDTO.sortColumns} ${pageComEldersRecordsDTO.sortType}\n" + "</if>  "
        + "</script>")
    List<ComEldersAuthRecordVO> selectEldersRecordByPage(Page page,
        @Param("pageComEldersRecordsDTO") PageComEldersRecordsDTO pageComEldersRecordsDTO);
 
    @Select("<script> " + "  SELECT DISTINCT a.name"
        + " FROM com_elders_auth ea LEFT JOIN com_elders_auth_user au ON ea.family_user_id = au.id \n"
        + "LEFT JOIN com_act a ON au.community_id = a.community_id\n" + " WHERE ea.id = #{id}  " + "</script>")
    String selectCommunityNameByAuth(@Param("id") Long id);
 
    @Select("select user_id,id_card,name from sys_user where user_id = #{userId}")
    SysUserVO getSysUserByUserId(@Param("userId") Long userId);
 
//    @Select("<script> "
//        + " SELECT e.id,e.CREATE_BY,e.create_at, e.update_by, e.update_at, e.id_card, e.auth_user_name, e.video_url,"
//        + " e.submit_user_id, e.domicile, e.STATUS, e.birth_day, e.type, e.age, e.verification_result, u.name as sumitUserName, u.phone as sumitUserAccount  "
//        + " FROM ( " + "       SELECT MAX(id) AS id , DATE_FORMAT(create_at, '%Y-%m') AS yearMonth "
//        + "        FROM com_elders_auth " + "        GROUP BY id_card, yearMonth " + "       ) t "
//        + " left join com_elders_auth e on t.id = e.id " + " LEFT JOIN sys_user u ON e.submit_user_id = u.user_id  "
//        + "<where>" + " <if test='pageEldersAuthRecordDTO.name!=null'>\n"
//        + " AND e.auth_user_name like concat('%', #{pageEldersAuthRecordDTO.name}, '%')" + "</if>"
//        + " <if test='pageEldersAuthRecordDTO.idCard!=null and pageEldersAuthRecordDTO.idCard!=&quot;&quot;'>\n"
//        + " AND e.id_card = #{pageEldersAuthRecordDTO.idCard}\n" + "</if>"
//        + " <if test='pageEldersAuthRecordDTO.type!=null'>\n" + " AND e.type = #{pageEldersAuthRecordDTO.type}\n"
//        + "</if>" + " <if test='pageEldersAuthRecordDTO.month!=null'>\n"
//        + " AND month(e.create_at) = #{pageEldersAuthRecordDTO.month}\n" + "</if>\n" + "</where>\n"
//        + "<if test='pageEldersAuthRecordDTO.sortColumns!=null'>\n"
//        + "ORDER BY e.${pageEldersAuthRecordDTO.sortColumns} ${pageEldersAuthRecordDTO.sortType}\n" + "</if> "
//        + "</script>")
    IPage<ComEldersAuthRecordForCommunityVO> selectCommunityEldersRecordByPage(Page page,
        @Param("pageEldersAuthRecordDTO") PageEldersAuthRecordDTO pageEldersAuthRecordDTO);
 
    /**
     * 根据社区id查询当前社区有多少人未认证和认证
     * @param communityId   社区id
     * @return  前社区有多少人未认证和认证
     */
    Map<String,Object> getEldersAuthStatistics(@Param("communityId") Long communityId);
 
    /**
     * 查询社区上月所有视频认证记录
     * @param communityId   社区id
     * @return  上月所有视频认证记录
     */
    List<ComEldersAuthHistoryVO> getEldersAuthRecords(@Param("communityId") Long communityId);
 
}