CeDo
2021-05-19 f1876cb0149aefff5b211cd8973adabe05e7be31
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
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 = #{pageEldersAuthDTO.authUserName} " +
            " </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.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 = #{pageEldersAuthDTO.authUserName} " +
            " </if> " +
            " </where>" +
            " ORDER BY ea.${pageEldersAuthDTO.sortBy} ${pageEldersAuthDTO.order}  " +
            "</script>")
    List<ExcelElderAuthDTO> selectByParams( @Param("pageEldersAuthDTO")  PageEldersAuthDTO pageEldersAuthDTO);
}