|
@@ -3,8 +3,8 @@ package cn.iocoder.yudao.module.system.dal.mysql.userAchievement;
|
|
|
import java.util.*;
|
|
|
|
|
|
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.mybatis.core.query.MPJLambdaWrapperX;
|
|
|
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;
|
|
@@ -22,78 +22,25 @@ public interface UserAchievementMapper extends BaseMapperX<UserAchievementDO> {
|
|
|
//都是按时间分页
|
|
|
//所有用户
|
|
|
default PageResult<UserAchievementDO> selectPage(UserAchievementPageReqVO reqVO) {
|
|
|
- Long loginID = SecurityFrameworkUtils.getLoginUserId(); //
|
|
|
- System.out.println(loginID);
|
|
|
- // TODO 和下面同理
|
|
|
-
|
|
|
- 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))
|
|
|
- .orderByDesc(UserAchievementDO::getCreateTime));
|
|
|
- }
|
|
|
- //导师
|
|
|
- default PageResult<UserAchievementDO> selectTeacherPage(UserAchievementPageReqVO reqVO) {
|
|
|
- Long loginID = SecurityFrameworkUtils.getLoginUserId(); //
|
|
|
- // TODO 逻辑还是稍微有点混乱,UserAchievementPageReqVO里面可以直接加入deptId这个参数,
|
|
|
- // 这样就不需要再另外查询了,就是成果表中加入一个dept_id字段,然后查询的时候直接用这个字段来查询(看了一下,发现你是存了的,为啥不直接用)
|
|
|
- // 如果需要查询,也不建议用下面这种,如果dept_id出现问题应该会报错
|
|
|
- // 而且我看这个逻辑好像没把老师筛选出来
|
|
|
-
|
|
|
-
|
|
|
- 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导师
|
|
|
- // TODO 这里的筛选应该是无效筛选,没有达成目的
|
|
|
- .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(); //
|
|
|
- System.out.println(loginID);
|
|
|
- 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())
|
|
|
- //找到这个自己的成果
|
|
|
- //TODO 怎么还插入了一段原生sql哈哈哈哈,直接.eqIfPresent(UserAchievementDO::getUserId, loginID)即可
|
|
|
- .inSql(UserAchievementDO::getUserId,String.format("SELECT id FROM system_users WHERE id = %d", loginID))
|
|
|
- .orderByDesc(UserAchievementDO::getCreateTime));
|
|
|
+ Long deptId =SecurityFrameworkUtils.getLoginUserDeptId();
|
|
|
+ MPJLambdaWrapperX<UserAchievementDO> queryWrapper =new MPJLambdaWrapperX<>();
|
|
|
+
|
|
|
+ queryWrapper.betweenIfPresent(UserAchievementDO::getCreateTime,reqVO.getCreateTime())
|
|
|
+ .inIfPresent(UserAchievementDO::getUserType,reqVO.getUserType())
|
|
|
+ .selectAll(UserAchievementDO.class)
|
|
|
+ .selectAs(AdminUserDO::getUserType,UserAchievementDO::getUserType)
|
|
|
+ .leftJoin(AdminUserDO.class,AdminUserDO::getId,UserAchievementDO::getUserId)
|
|
|
+ .eqIfExists(UserAchievementDO::getUserId, reqVO.getUserId())
|
|
|
+ .likeIfExists(UserAchievementDO::getAchievementName, reqVO.getAchievementName())
|
|
|
+ .eqIfExists(UserAchievementDO::getAchievementType, reqVO.getAchievementType())
|
|
|
+ .likeIfExists(UserAchievementDO::getUserName, reqVO.getUserName())
|
|
|
+ .eqIfExists(UserAchievementDO::getDetail, reqVO.getDetail())
|
|
|
+ //找到这个登录人工作室下的所有人员成果
|
|
|
+ .eqIfExists(UserAchievementDO::getDeptId,deptId)
|
|
|
+ //用户类型查
|
|
|
+ .orderByDesc(UserAchievementDO::getCreateTime);
|
|
|
+
|
|
|
+ return selectPage(reqVO,queryWrapper);
|
|
|
}
|
|
|
|
|
|
@Select("SELECT * FROM system_user_achievement WHERE user_id = #{userId}")
|