huanghongfa
2021-05-20 bb2da5de17a6d959f91738c17868b312ee14e86b
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
package com.panzhihua.service_community.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.dtos.community.ExcelElderAuthDTO;
import com.panzhihua.common.model.dtos.community.PageEldersAuthDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.EldersAuthDetailsVO;
import com.panzhihua.common.model.vos.community.EldersAuthVO;
import com.panzhihua.service_community.model.dos.EldersAuthDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
 
import java.util.List;
 
/**
 * 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.SUMIT_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.SUMIT_USER_ID = u.user_id\n" +
            " <where> " +
            "<if test='pageEldersAuthDTO.sumitUserId != null'>" +
            " AND ea.SUMIT_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.DOMICILE, ea.SUMIT_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.SUMIT_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.SUMIT_USER_ID = u.user_id\n" +
            " LEFT JOIN com_act ac ON u.community_id = ac.community_id\n" +
            " <where> " +
 
            "<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.SUMIT_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);
}