获取用户精简信息列表

This commit is contained in:
aikai 2024-07-04 09:37:36 +08:00
parent 9ba88d2b98
commit c347e9a1bb
6 changed files with 60 additions and 17 deletions

View File

@ -0,0 +1,17 @@
package cn.iocoder.yudao.module.system.controller.admin.user.dto;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
public class UserPageDTO extends PageParam {
@Schema(description = "考勤组ids")
private List<Long> groupIds;
@Schema(description = "用户名称")
private String name;
@Schema(description = "状态0正常 1停用不传则全部", example = "1")
private Integer status;
}

View File

@ -3,10 +3,13 @@ package cn.iocoder.yudao.module.system.dal.mysql.user;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.system.controller.admin.user.dto.UserPageDTO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.factoryUser.FactoryUserPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.factoryUser.FactoryUserPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserRespVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserRespVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSimpleRespVO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -95,8 +98,10 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
/** /**
* 获取考勤组里所有的用户 * 获取考勤组里所有的用户
* @param groupIds *
* @param mpPage
* @param dto
* @return * @return
*/ */
List<AdminUserDO> getAllUserListByGroupIds(@Param("groupIds") List<Long> groupIds); IPage<UserSimpleRespVO> getAllUserListByGroupIds(@Param("mpPage") IPage mpPage, @Param("dto") UserPageDTO dto);
} }

View File

@ -3,11 +3,13 @@ package cn.iocoder.yudao.module.system.service.user;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.module.system.controller.admin.user.dto.UserPageDTO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.factoryUser.FactoryUserPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.factoryUser.FactoryUserPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.InputStream; import java.io.InputStream;
@ -300,8 +302,8 @@ public interface AdminUserService {
/** /**
* 获取所有人员列表根据考勤组 * 获取所有人员列表根据考勤组
* *
* @param groupIds * @param dto
* @return * @return
*/ */
List<AdminUserDO> getAllUserListByGroupIds(List<Long> groupIds); IPage<UserSimpleRespVO> getAllUserListByGroupIds(UserPageDTO dto);
} }

View File

@ -12,7 +12,9 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.common.util.string.DTO.IdCardDO; import cn.iocoder.yudao.framework.common.util.string.DTO.IdCardDO;
import cn.iocoder.yudao.framework.common.util.string.StrUtils; import cn.iocoder.yudao.framework.common.util.string.StrUtils;
import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils; import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils;
import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils;
import cn.iocoder.yudao.module.infra.api.file.FileApi; import cn.iocoder.yudao.module.infra.api.file.FileApi;
import cn.iocoder.yudao.module.system.controller.admin.user.dto.UserPageDTO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.factoryUser.FactoryUserPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.factoryUser.FactoryUserPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
@ -27,6 +29,7 @@ import cn.iocoder.yudao.module.system.service.dept.PostService;
import cn.iocoder.yudao.module.system.service.permission.PermissionService; import cn.iocoder.yudao.module.system.service.permission.PermissionService;
import cn.iocoder.yudao.module.system.service.tenant.TenantService; import cn.iocoder.yudao.module.system.service.tenant.TenantService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.xingyuv.http.util.StringUtil; import com.xingyuv.http.util.StringUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -598,8 +601,8 @@ public class AdminUserServiceImpl implements AdminUserService {
} }
@Override @Override
public List<AdminUserDO> getAllUserListByGroupIds(List<Long> groupIds) { public IPage<UserSimpleRespVO> getAllUserListByGroupIds(UserPageDTO dto) {
return userMapper.getAllUserListByGroupIds(groupIds); return userMapper.getAllUserListByGroupIds(MyBatisUtils.buildPage(dto), dto);
} }
} }

View File

@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.date.DateUtils; import cn.iocoder.yudao.framework.common.util.date.DateUtils;
@ -279,15 +280,19 @@ public class LogStatisticsServiceImpl implements LogStatisticsService {
LogRuleDO logRuleDO = logRuleService.getLogRuleByFormId(dto.getFormId()); LogRuleDO logRuleDO = logRuleService.getLogRuleByFormId(dto.getFormId());
// 判断开始时间是否当天 / 是否本周 // 判断开始时间是否当天 / 是否本周
boolean flag = false; boolean flag = false;
Date begin = DateUtil.parse(dto.getBeginTime(), "yyyy-MM-dd").toJdkDate();
List<LogStatisticsDetailsVO> logStatisticsDOS = new ArrayList<>(); List<LogStatisticsDetailsVO> logStatisticsDOS = new ArrayList<>();
Date thisDate = new Date(); List<String> dateList = new ArrayList<>();
if (logRuleDO.getType() == 1) { if (ObjectUtil.isNotEmpty(dto.getBeginTime())) {
flag = DateUtil.isSameDay(begin, thisDate); Date begin = DateUtil.parse(dto.getBeginTime(), "yyyy-MM-dd").toJdkDate();
} else if (logRuleDO.getType() == 2) { Date thisDate = new Date();
flag = DateUtil.isSameWeek(begin, thisDate, true); if (logRuleDO.getType() == 1) {
flag = DateUtil.isSameDay(begin, thisDate);
} else if (logRuleDO.getType() == 2) {
flag = DateUtil.isSameWeek(begin, thisDate, true);
}
dateList = DateUtils.betweenDayStrList(dto.getBeginTime(), dto.getEndTime());
} }
List<String> dateList = DateUtils.betweenDayStrList(dto.getBeginTime(), dto.getEndTime());
// 这里将区间转换为具体的日期 因为mysql BETWEEN 会导致索引失效 // 这里将区间转换为具体的日期 因为mysql BETWEEN 会导致索引失效
if (flag) { if (flag) {
logStatisticsDOS = logStatisticsMapper.getCurrentStatistics(dto.getFormId(), dateList); logStatisticsDOS = logStatisticsMapper.getCurrentStatistics(dto.getFormId(), dateList);

View File

@ -54,19 +54,30 @@
</foreach> </foreach>
and not exists(select id from kq_attendance_group_user where user_id = a.id and attendance_group_id != #{groupId} and deleted = 0) and not exists(select id from kq_attendance_group_user where user_id = a.id and attendance_group_id != #{groupId} and deleted = 0)
</select> </select>
<select id="getAllUserListByGroupIds" <select id="getAllUserListByGroupIds"
resultType="cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO"> resultType="cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSimpleRespVO">
select a.* select a.id,
a.nickname,
a.dept_id,
c.name deptName
from system_users as a from system_users as a
left join kq_attendance_group_user b on a.id = b.user_id left join kq_attendance_group_user b on a.id = b.user_id
left join system_dept as c on a.dept_id = c.id
<where> <where>
a.deleted = 0 and b.deleted = 0 a.deleted = 0 and b.deleted = 0
<if test="groupIds != null and groupIds.size() > 0"> <if test="dto.groupIds != null and dto.groupIds.size() > 0">
and b.attendance_group_id in and b.attendance_group_id in
<foreach collection="groupIds" item="groupId" open="(" close=")" separator=","> <foreach collection="dto.groupIds" item="groupId" open="(" close=")" separator=",">
#{groupId} #{groupId}
</foreach> </foreach>
</if> </if>
<if test="dto.name != null and dto.name != ''">
and a.nickname like concat('%', #{dto.name}, '%')
</if>
<if test="dto.status != null">
and a.status = #{dto.status}
</if>
</where> </where>
</select> </select>
</mapper> </mapper>