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);
|
}
|