Crazy 8 months ago
parent
commit
6fcb5d48d9

+ 19 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/userAchievement/UserAchievementController.java

@@ -114,6 +114,24 @@ public class UserAchievementController {
         return success(BeanUtils.toBean(pageResult, UserAchievementRespVO.class));
     }
 
+    @GetMapping("/teacherPage")
+    @Operation(summary = "获得工作间下导师的成果分页")
+    @PreAuthorize("@ss.hasPermission('system:user-achievement:teacherQuery')")
+    public CommonResult<PageResult<UserAchievementRespVO>> getTeacherAchievementPage(@Valid UserAchievementPageReqVO pageReqVO) {
+        PageResult<UserAchievementDO>pageResult = userAchievementService.getTeacherAchievementPage(pageReqVO);
+
+        return success(BeanUtils.toBean(pageResult, UserAchievementRespVO.class));
+    }
+
+    @GetMapping("/studentPage")
+    @Operation(summary = "获得工作间下学生的成果分页")
+    @PreAuthorize("@ss.hasPermission('system:user-achievement:studentQuery')")
+    public CommonResult<PageResult<UserAchievementRespVO>> getStudentAchievementPage(@Valid UserAchievementPageReqVO pageReqVO) {
+        PageResult<UserAchievementDO>pageResult = userAchievementService.getStudentAchievementPage(pageReqVO);
+
+        return success(BeanUtils.toBean(pageResult, UserAchievementRespVO.class));
+    }
+
     @GetMapping("/export-excel")
     @Operation(summary = "导出成果 Excel")
     @PreAuthorize("@ss.hasPermission('system:user-achievement:export')")
@@ -136,6 +154,7 @@ public class UserAchievementController {
         return success(BeanUtils.toBean(pageResult, UserAchievementRespVO.class));
     }
 
+
     @GetMapping("/oneUserPage")
     @Operation(summary = "获得某个用户的成果分页")
     @PreAuthorize("@ss.hasPermission('system:user-achievement:oneUserQuery')")

+ 15 - 8
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/studentAttendance/StudentAttendanceMapper.java

@@ -98,22 +98,29 @@ public interface StudentAttendanceMapper extends BaseMapperX<StudentAttendanceDO
                  .orderByDesc(StudentAttendanceDO::getClockInTime));
     }
 
-    //自己全部
+    //自己全部(先展示未打卡的,再按时间分布)
     default PageResult<StudentAttendanceDO> selectSelfPage(StudentAttendancePageReqVO reqVO) {
-        Long loginId =SecurityFrameworkUtils.getLoginUserId();
+        Long loginId = SecurityFrameworkUtils.getLoginUserId();
+
+        LambdaQueryWrapperX<StudentAttendanceDO> queryWrapperX = new LambdaQueryWrapperX<>();
 
-        LambdaQueryWrapperX<StudentAttendanceDO> queryWrapperX =new LambdaQueryWrapperX<>();
         return selectPage(reqVO, queryWrapperX
                 .likeIfPresent(StudentAttendanceDO::getStudentName, reqVO.getStudentName())
                 .betweenIfPresent(StudentAttendanceDO::getDate, reqVO.getDate())
                 .betweenIfPresent(StudentAttendanceDO::getCreateTime, reqVO.getCreateTime())
-                .eqIfPresent(StudentAttendanceDO::getClockInStatus, reqVO.getClockInStatus())
-                // 自己的
-                .eqIfPresent(StudentAttendanceDO::getStudentId,loginId)
-                .orderByDesc(StudentAttendanceDO::getClockInTime));
-
+                .eqIfPresent(StudentAttendanceDO::getStudentId, loginId)
+                // 添加 clockInStatus 的筛选
+                .and(wrapper -> wrapper
+                        .eq(StudentAttendanceDO::getClockInStatus, 1)
+                        .or()
+                        .eq(StudentAttendanceDO::getClockInStatus, 2)
+                )
+                .orderByAsc(StudentAttendanceDO::getClockInStatus) // 先按状态排序
+                .orderByDesc(StudentAttendanceDO::getClockInTime) // 再按时间排序
+        );
     }
 
+
     @Select("SELECT * FROM system_student_attendance WHERE user_number = #{userNumber}")
     List<StudentAttendanceDO> getStudentAttendanceByUserNumber(String userNumber);
 

+ 41 - 3
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/userAchievement/UserAchievementMapper.java

@@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
+import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.userAchievement.UserAchievementDO;
 import org.apache.ibatis.annotations.Mapper;
 import cn.iocoder.yudao.module.system.controller.admin.userAchievement.vo.*;
@@ -18,7 +19,8 @@ import org.apache.ibatis.annotations.Select;
  */
 @Mapper
 public interface UserAchievementMapper extends BaseMapperX<UserAchievementDO> {
-
+    //都是按时间分页
+    //所有用户
     default PageResult<UserAchievementDO> selectPage(UserAchievementPageReqVO reqVO) {
         Long loginID = SecurityFrameworkUtils.getLoginUserId(); //
         System.out.println(loginID);
@@ -31,8 +33,43 @@ public interface UserAchievementMapper extends BaseMapperX<UserAchievementDO> {
                 .eqIfPresent(UserAchievementDO::getDetail, reqVO.getDetail())
                 //找到这个工作室下的人员成果
                 .inSql(UserAchievementDO::getDeptId,String.format("SELECT dept_id FROM system_users WHERE id = %d", loginID))
-                .orderByDesc(UserAchievementDO::getId));
+                .orderByDesc(UserAchievementDO::getCreateTime));
     }
+    //导师
+    default PageResult<UserAchievementDO> selectTeacherPage(UserAchievementPageReqVO reqVO) {
+        Long loginID = SecurityFrameworkUtils.getLoginUserId(); //
+        return selectPage(reqVO, new LambdaQueryWrapperX<UserAchievementDO>()
+                .eqIfPresent(UserAchievementDO::getUserId, reqVO.getUserId())
+                .likeIfPresent(UserAchievementDO::getAchievementName, reqVO.getAchievementName())
+                .eqIfPresent(UserAchievementDO::getAchievementType, reqVO.getAchievementType())
+                .likeIfPresent(UserAchievementDO::getUserName, reqVO.getUserName())
+                .betweenIfPresent(UserAchievementDO::getCreateTime, reqVO.getCreateTime())
+                .eqIfPresent(UserAchievementDO::getDetail, reqVO.getDetail())
+                //找到这个工作室下的人员成果
+                .inSql(UserAchievementDO::getDeptId,String.format("SELECT dept_id FROM system_users WHERE id = %d", loginID))
+                // 找到这个工作室下的人员成果,3导师
+                .inSql(UserAchievementDO::getDeptId,
+                        String.format("SELECT dept_id FROM system_users WHERE id = %d AND user_type = 3", loginID))
+                .orderByDesc(UserAchievementDO::getCreateTime));
+    }
+    //学生
+    default PageResult<UserAchievementDO> selectStudentPage(UserAchievementPageReqVO reqVO) {
+        Long loginID = SecurityFrameworkUtils.getLoginUserId(); //
+        return selectPage(reqVO, new LambdaQueryWrapperX<UserAchievementDO>()
+                .eqIfPresent(UserAchievementDO::getUserId, reqVO.getUserId())
+                .likeIfPresent(UserAchievementDO::getAchievementName, reqVO.getAchievementName())
+                .eqIfPresent(UserAchievementDO::getAchievementType, reqVO.getAchievementType())
+                .likeIfPresent(UserAchievementDO::getUserName, reqVO.getUserName())
+                .betweenIfPresent(UserAchievementDO::getCreateTime, reqVO.getCreateTime())
+                .eqIfPresent(UserAchievementDO::getDetail, reqVO.getDetail())
+                //找到这个工作室下的人员成果
+                .inSql(UserAchievementDO::getDeptId,String.format("SELECT dept_id FROM system_users WHERE id = %d", loginID))
+                // 找到这个工作室下的人员成果//1在校生,2毕业生
+                .inSql(UserAchievementDO::getDeptId,
+                        String.format("SELECT dept_id FROM system_users WHERE id = %d AND user_type IN (1, 2)", loginID))
+                .orderByDesc(UserAchievementDO::getCreateTime));
+    }
+
     //获取登录人员自己的
     default PageResult<UserAchievementDO> selectSelfPage(UserAchievementPageReqVO reqVO) {
         Long loginID = SecurityFrameworkUtils.getLoginUserId(); //
@@ -46,8 +83,9 @@ public interface UserAchievementMapper extends BaseMapperX<UserAchievementDO> {
                 .eqIfPresent(UserAchievementDO::getDetail, reqVO.getDetail())
                 //找到这个自己的成果
                 .inSql(UserAchievementDO::getUserId,String.format("SELECT id FROM system_users WHERE id = %d", loginID))
-                .orderByDesc(UserAchievementDO::getId));
+                .orderByDesc(UserAchievementDO::getCreateTime));
     }
+
     @Select("SELECT * FROM system_user_achievement WHERE user_id = #{userId}")
     List<UserAchievementDO> selectUserAchievementsById(int userId);
 

+ 4 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/userAchievement/UserAchievementService.java

@@ -57,6 +57,10 @@ public interface UserAchievementService {
      */
     PageResult<UserAchievementDO> getUserAchievementPage(UserAchievementPageReqVO pageReqVO);
 
+    PageResult<UserAchievementDO> getTeacherAchievementPage(UserAchievementPageReqVO pageReqVO);//导师
+
+    PageResult<UserAchievementDO> getStudentAchievementPage(UserAchievementPageReqVO pageReqVO);//学生
+
     PageResult<UserAchievementDO> getSelfAchievementPage(UserAchievementPageReqVO pageReqVO);
 
 

+ 10 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/userAchievement/UserAchievementServiceImpl.java

@@ -95,6 +95,16 @@ public class UserAchievementServiceImpl implements UserAchievementService {
         return userAchievementMapper.selectPage(pageReqVO);
     }
 
+    @Override
+    public PageResult<UserAchievementDO> getTeacherAchievementPage(UserAchievementPageReqVO pageReqVO) {
+        return userAchievementMapper.selectTeacherPage(pageReqVO);
+    }
+
+    @Override
+    public PageResult<UserAchievementDO> getStudentAchievementPage(UserAchievementPageReqVO pageReqVO) {
+        return userAchievementMapper.selectTeacherPage(pageReqVO);
+    }
+
     @Override
     public PageResult<UserAchievementDO> getSelfAchievementPage(UserAchievementPageReqVO pageReqVO) {
         return userAchievementMapper.selectSelfPage(pageReqVO);