huanghongfa
2021-09-02 177249c76aeea0b4bf8d8816d4994e3b445b45ce
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java
@@ -1,5 +1,10 @@
package com.panzhihua.service_community.dao;
import java.util.List;
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;
@@ -8,14 +13,12 @@
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.*;
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.user.SysUserVO;
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
@@ -23,200 +26,127 @@
 * @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" +
            " LEFT JOIN com_act ac ON u.community_id = ac.community_id\n" +
            " <where> " +
    @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"
        + " 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.communityId != null'>"
        + "  AND ac.community_id = #{pageEldersAuthDTO.communityId} " + " </if> " +
            "<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>")
        "<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>")
    @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> " +
    @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.communityId != null'>" +
            "  AND ac.community_id = #{pageEldersAuthDTO.communityId} " +
            " </if> " +
        "<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 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);
        "<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>")
    @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 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("<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);
    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.SUMIT_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.SUMIT_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'>\n" +
            " AND e.ID_CARD  like concat('%',  #{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);
    @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.SUMIT_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.SUMIT_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'>\n"
        + " AND e.ID_CARD  like concat('%',  #{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);
}