package com.panzhihua.service_user.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.PageDTO;
|
import com.panzhihua.common.model.dtos.user.PageUserAppletsBackstageDTO;
|
import com.panzhihua.common.model.vos.IndexDataKanbanVO;
|
import com.panzhihua.common.model.vos.IndexDataVO;
|
import com.panzhihua.common.model.vos.LoginUserInfoVO;
|
import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
|
import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
|
import com.panzhihua.common.model.vos.user.SysUserVO;
|
import com.panzhihua.service_user.model.dos.SysUserDO;
|
import com.panzhihua.service_user.model.dtos.DataKanbanDTO;
|
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Update;
|
|
import java.util.List;
|
|
/**
|
* @program: springcloud_k8s_panzhihuazhihuishequ
|
* @description: 用户
|
* @author: huang.hongfa weixin hhf9596 qq 959656820
|
* @create: 2020-11-20 15:55
|
**/
|
@Mapper
|
public interface UserDao extends BaseMapper<SysUserDO> {
|
// @Select("<script> " +
|
// " <where>" +
|
// "<if test='nameCn != null and nameCn.trim() != ""'>" +
|
// " </if> " +
|
// "<if test='nameCn != null and nameCn.trim() != ""'>" +
|
// " </if> " +
|
// "<if test='nameCn != null and nameCn.trim() != ""'>" +
|
// " </if> " +
|
// " </where>" +
|
// "</script>")
|
|
@Select("<script> " +
|
"SELECT\n" +
|
"u.user_id,\n" +
|
"u.face_url,\n" +
|
"u.nick_name,\n" +
|
"u.`name`,\n" +
|
"u.phone,\n" +
|
"u.id_card,\n" +
|
"u.face_state,\n" +
|
"c.name,\n" +
|
"u.create_at \n" +
|
"FROM\n" +
|
"sys_user u\n" +
|
"JOIN com_act c ON u.community_id = c.community_id \n" +
|
"<if test='loginUserInfoVO.name != null and loginUserInfoVO.name.trim() != ""'>" +
|
"AND c.`name` = #{loginUserInfoVO.name} \n" +
|
" </if> " +
|
" <where>" +
|
"<if test='loginUserInfoVO.communityName != null and loginUserInfoVO.communityName.trim() != ""'>" +
|
"and u.`name` = #{loginUserInfoVO.communityName} \n" +
|
" </if> " +
|
"<if test='loginUserInfoVO.phone != null and loginUserInfoVO.phone.trim() != ""'>" +
|
"AND u.phone = #{loginUserInfoVO.phone}" +
|
" </if> " +
|
" </where>" +
|
" order by u.face_state asc,u.create_at asc " +
|
"</script>")
|
IPage<LoginUserInfoVO> pageUserFace(Page page, @Param("loginUserInfoVO") LoginUserInfoVO loginUserInfoVO);
|
|
@Select("<script> " +
|
"SELECT\n" +
|
"u.user_id,\n" +
|
"u.`name`,\n" +
|
"u.nick_name,\n" +
|
"u.phone,\n" +
|
"u.id_card,\n" +
|
"u.job,\n" +
|
"c.name,\n" +
|
"u.tags,\n" +
|
"u.create_at \n" +
|
"FROM\n" +
|
"sys_user u\n" +
|
"LEFT JOIN com_act c ON u.community_id = c.community_id \n" +
|
"<if test='loginUserInfoVO.communityName != null and loginUserInfoVO.communityName.trim() != ""'>" +
|
"AND c.`name` = #{loginUserInfoVO.communityName} \n" +
|
" </if> " +
|
" <where>" +
|
"<if test='loginUserInfoVO.name != null and loginUserInfoVO.name.trim() != ""'>" +
|
" and u.`name` = #{loginUserInfoVO.name} \n" +
|
" </if> " +
|
"<if test='loginUserInfoVO.phone != null and loginUserInfoVO.phone.trim() != ""'>" +
|
"AND u.phone = #{loginUserInfoVO.phone}" +
|
" </if> " +
|
" </where>" +
|
"</script>")
|
IPage<LoginUserInfoVO> pageUser(Page page, @Param("loginUserInfoVO") LoginUserInfoVO loginUserInfoVO);
|
|
@Select("<script> " +
|
"SELECT\n" +
|
"u.user_id,\n" +
|
"u.account,\n" +
|
"u.`name`,\n" +
|
"u.phone,\n" +
|
"e.role_name,\n" +
|
"u.`status`,\n" +
|
"u.create_at,\n" +
|
"u.last_login_time \n" +
|
"FROM\n" +
|
"sys_user u\n" +
|
"JOIN sys_user_role r ON u.user_id = r.user_id\n" +
|
"JOIN sys_role e ON r.role_id = e.role_id \n" +
|
"<if test='administratorsUserVO.roleId != null and administratorsUserVO.roleId!=0'>" +
|
" and e.role_id=#{administratorsUserVO.roleId}" +
|
" </if> " +
|
" <where>" +
|
"<if test='administratorsUserVO.communityId != null '>" +
|
"AND u.community_id = #{administratorsUserVO.communityId} \n" +
|
" </if> " +
|
"<if test='administratorsUserVO.name != null and administratorsUserVO.name.trim() != ""'>" +
|
"AND u.name = #{administratorsUserVO.name} \n" +
|
" </if> " +
|
"<if test='administratorsUserVO.phone != null and administratorsUserVO.phone.trim() != ""'>" +
|
"AND u.phone = #{administratorsUserVO.phone}" +
|
" </if> " +
|
"<if test='administratorsUserVO.account != null and administratorsUserVO.account.trim() != ""'>" +
|
"AND u.account = #{administratorsUserVO.account}" +
|
" </if> " +
|
" </where>" +
|
"</script>")
|
IPage<AdministratorsUserVO> pageUserBackstage(Page page, @Param("administratorsUserVO") AdministratorsUserVO administratorsUserVO);
|
|
@Select("<script> " +
|
"select \n" +
|
"u.user_id,\n" +
|
"u.phone,\n" +
|
"u.nick_name,\n" +
|
"u.name,\n" +
|
"a.name communityName,\n" +
|
"u.status,\n" +
|
"u.create_at,\n" +
|
"u.last_login_time\n" +
|
"from sys_user u\n" +
|
"left join com_act a on u.community_id=a.community_id\n" +
|
" where\n" +
|
"u.type=1\n" +
|
"<if test='pageUserAppletsBackstageDTO.phone != null and pageUserAppletsBackstageDTO.phone.trim() != ""'>" +
|
"and u.phone=#{pageUserAppletsBackstageDTO.phone}\n" +
|
" </if> " +
|
"<if test='pageUserAppletsBackstageDTO.communityId != null and pageUserAppletsBackstageDTO.communityId != 0'>" +
|
"and u.community_id=#{pageUserAppletsBackstageDTO.communityId}\n" +
|
" </if> " +
|
"<if test='pageUserAppletsBackstageDTO.status != null and pageUserAppletsBackstageDTO.status != 0'>" +
|
"and u.status=#{pageUserAppletsBackstageDTO.status}\n" +
|
" </if> " +
|
"<if test='pageUserAppletsBackstageDTO.createAtBegin != null '>" +
|
"and u.create_at between #{pageUserAppletsBackstageDTO.createAtBegin} and #{pageUserAppletsBackstageDTO.createAtEnd}\n" +
|
" </if> " +
|
"<if test='pageUserAppletsBackstageDTO.lastLoginTimeBegin != null '>" +
|
"and u.last_login_time between #{pageUserAppletsBackstageDTO.lastLoginTimeBegin} and #{pageUserAppletsBackstageDTO.lastLoginTimeEnd}\n" +
|
" </if> " +
|
"order by u.create_at desc \n" +
|
"</script>")
|
IPage<SysUserVO> pageUserAppletsBackstage(Page page, @Param("pageUserAppletsBackstageDTO") PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO);
|
|
@Update("update sys_user set nick_name=null ,community_id=null,area_id=null where user_id=#{userId}")
|
int deleteUserTest(Long userId);
|
|
@Select("<script> " +
|
"select * from \n" +
|
"sys_user_notice \n" +
|
"where \n" +
|
"user_id=#{pageDTO.userId} \n" +
|
"<if test='pageDTO.type != null and pageDTO.type != 0'>" +
|
"and type=#{pageDTO.type}\n" +
|
" </if> " +
|
"order by create_at desc\n" +
|
"</script>")
|
IPage<SysUserNoticeVO> pageNotice(Page page, @Param("pageDTO") PageDTO pageDTO);
|
|
@Select("SELECT \n" +
|
"COUNT(user_id)allUser,\n" +
|
"COUNT(case WHEN DATE_FORMAT(create_at,'%m-%d-%Y')=DATE_FORMAT(SYSDATE(),'%m-%d-%Y') then user_id else null end )addUser,\n" +
|
"COUNT(case WHEN DATE_FORMAT(last_login_time,'%m-%d-%Y')=DATE_FORMAT(SYSDATE(),'%m-%d-%Y') then user_id else null end )activeDayUser,\n" +
|
"COUNT(case WHEN DATE_FORMAT(last_login_time,'%m-%d-%Y')=DATE_FORMAT(SYSDATE(),'%m-%d-%Y') and continuous_landing_days>=7 then user_id else null end )activeWeekUser\n" +
|
"FROM\n" +
|
"sys_user\n" +
|
"where type=1")
|
IndexDataKanbanVO selectIndexDataKanban();
|
|
@Select("select t.`name`,t.num from (\n" +
|
"SELECT \n" +
|
"COUNT(u.user_id)num,\n" +
|
"c.`name`\n" +
|
"FROM\n" +
|
"sys_user u \n" +
|
"join com_act c on u.community_id=c.community_id\n" +
|
"WHERE\n" +
|
"u.type =1\n" +
|
"GROUP BY u.community_id)t ORDER BY t.num desc limit 10")
|
List<DataKanbanDTO> selectCommunityUserOrder();
|
|
@Select("select t.`name`,t.num from (\n" +
|
"SELECT \n" +
|
"COUNT(u.user_id)num,\n" +
|
"c.`name`\n" +
|
"FROM\n" +
|
"sys_user u \n" +
|
"join com_act c on u.community_id=c.community_id\n" +
|
"WHERE\n" +
|
"u.type =1 and DATE_FORMAT(u.last_login_time,'%m-%d-%Y')=DATE_FORMAT(SYSDATE(),'%m-%d-%Y') and u.continuous_landing_days>=7\n" +
|
"GROUP BY u.community_id)t ORDER BY t.num desc limit 10")
|
List<DataKanbanDTO> selectCommunityActiveUserOrder();
|
@Select("SELECT \n" +
|
"COUNT(u.user_id)allUser,\n" +
|
"COUNT(case when u.is_volunteer=1 then u.user_id else null end )volunteerUser,\n" +
|
"COUNT(case when u.is_partymember=1 then u.user_id else null end )partymemberUser,\n" +
|
"COUNT(h.id)house\n" +
|
"FROM\n" +
|
"sys_user u\n" +
|
"JOIN com_act c ON u.community_id = c.community_id \n" +
|
"LEFT JOIN com_mng_struct_house_user h on u.user_id=h.user_id\n" +
|
"WHERE\n" +
|
"u.community_id =#{communityId} and u.type=1")
|
IndexDataVO indexDataCommunityBackstage(Long communityId);
|
@Update("UPDATE sys_user u \n" +
|
"SET u.continuous_landing_days =\n" +
|
"IF\n" +
|
"(\n" +
|
"DATE_FORMAT( u.last_login_time, '%m-%d-%Y' )= DATE_FORMAT( SYSDATE(), '%m-%d-%Y' ),\n" +
|
"u.continuous_landing_days + 1,\n" +
|
"0)")
|
int timedTaskContinuousLandingDays();
|
}
|