|
|
@@ -1,21 +1,23 @@
|
|
|
package com.xjrsoft.module.student.controller;
|
|
|
|
|
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
|
+import cn.dev33.satoken.stp.StpUtil;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
import com.alibaba.excel.support.ExcelTypeEnum;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.github.yulichang.toolkit.MPJWrappers;
|
|
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
+import com.xjrsoft.common.enums.StudentCadreLevelEnum;
|
|
|
import com.xjrsoft.common.model.result.RT;
|
|
|
import com.xjrsoft.common.page.ConventPage;
|
|
|
import com.xjrsoft.common.page.PageOutput;
|
|
|
import com.xjrsoft.common.utils.VoToColumnUtil;
|
|
|
import com.xjrsoft.module.base.entity.BaseClass;
|
|
|
-import com.xjrsoft.module.base.entity.BaseGrade;
|
|
|
-import com.xjrsoft.module.base.entity.BaseMajorSet;
|
|
|
-import com.xjrsoft.module.organization.entity.Department;
|
|
|
+import com.xjrsoft.module.base.mapper.BaseClassMapper;
|
|
|
import com.xjrsoft.module.student.dto.AddBaseStudentCadreDto;
|
|
|
import com.xjrsoft.module.student.dto.BaseStudentCadrePageDto;
|
|
|
import com.xjrsoft.module.student.dto.UpdateBaseStudentCadreDto;
|
|
|
@@ -23,6 +25,7 @@ import com.xjrsoft.module.student.entity.BaseStudent;
|
|
|
import com.xjrsoft.module.student.entity.BaseStudentCadre;
|
|
|
import com.xjrsoft.module.student.entity.BaseStudentPost;
|
|
|
import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
|
|
|
+import com.xjrsoft.module.student.mapper.BaseStudentSchoolRollMapper;
|
|
|
import com.xjrsoft.module.student.service.IBaseStudentCadreService;
|
|
|
import com.xjrsoft.module.student.vo.BaseStudentCadrePageVo;
|
|
|
import com.xjrsoft.module.student.vo.BaseStudentCadreVo;
|
|
|
@@ -59,33 +62,77 @@ public class BaseStudentCadreController {
|
|
|
|
|
|
|
|
|
private final IBaseStudentCadreService baseStudentCadreService;
|
|
|
+ private final BaseStudentSchoolRollMapper baseStudentSchoolRollMapper;
|
|
|
+ private final BaseClassMapper baseClassMapper;
|
|
|
+
|
|
|
+ @GetMapping(value = "/classlist")
|
|
|
+ @ApiOperation(value="获取班主任管理的班级")
|
|
|
+ @SaCheckPermission("basestudentcadre:detail")
|
|
|
+ public RT<List<BaseClass>> classList(){
|
|
|
+ List<BaseClass> pageOutput = baseClassMapper.selectJoinList(BaseClass.class, new MPJLambdaWrapper<BaseClass>()
|
|
|
+ .disableSubLogicDel()
|
|
|
+ .eq(BaseClass::getTeacherId, StpUtil.getLoginIdAsLong())
|
|
|
+ );
|
|
|
+
|
|
|
+ return RT.ok(pageOutput);
|
|
|
+ }
|
|
|
+
|
|
|
+ @GetMapping(value = "/mobliepage")
|
|
|
+ @ApiOperation(value="学生干部管理列表(移动端分页)")
|
|
|
+ @SaCheckPermission("basestudentcadre:detail")
|
|
|
+ public RT<PageOutput<BaseStudentCadrePageVo>> mobliepage(@Valid BaseStudentCadrePageDto dto){
|
|
|
+ // 如果未传班级id和职务id,
|
|
|
+ if((ObjectUtil.isEmpty(dto.getClassId()) && StrUtil.equals(dto.getLevel(), StudentCadreLevelEnum.CLASS.getCode()))|| ObjectUtil.isEmpty(dto.getPostId())){
|
|
|
+ return RT.ok(new PageOutput<>());
|
|
|
+ }
|
|
|
+
|
|
|
+ IPage<BaseStudentCadrePageVo> page = baseStudentCadreService.selectJoinListPage(ConventPage.getPage(dto), BaseStudentCadrePageVo.class,
|
|
|
+ MPJWrappers.<BaseStudentCadre>lambdaJoin()
|
|
|
+ .like(StrUtil.isNotBlank(dto.getUserName()), XjrUser::getName, dto.getUserName())
|
|
|
+ .eq(ObjectUtil.isNotEmpty(dto.getClassId()), BaseStudentCadre::getClassId, dto.getClassId())
|
|
|
+ .eq(ObjectUtil.isNotEmpty(dto.getPostId()), BaseStudentCadre::getPostId, dto.getPostId())
|
|
|
+ .eq(ObjectUtil.isNotEmpty(dto.getLevel()), BaseStudentPost::getLevel, dto.getLevel())
|
|
|
+ .eq(ObjectUtil.isNotEmpty(dto.getPost()), BaseStudentPost::getPost, dto.getPost())
|
|
|
+ .orderByDesc(BaseStudentCadre::getId)
|
|
|
+ .selectAs(BaseStudent::getStudentId, BaseStudentCadrePageVo::getStudentId)
|
|
|
+ .selectAs(XjrUser::getName, BaseStudentCadrePageVo::getUserName)
|
|
|
+ .selectAs(BaseClass::getName, BaseStudentCadrePageVo::getClassName)
|
|
|
+ .selectAs(BaseStudentPost::getPost, BaseStudentCadrePageVo::getPost)
|
|
|
+ .selectAs(BaseStudentPost::getLevel, BaseStudentCadrePageVo::getLevel)
|
|
|
+ .select(BaseStudentCadre::getId)
|
|
|
+ .select(BaseStudentCadre.class,x -> VoToColumnUtil.fieldsToColumns(BaseStudentCadrePageVo.class).contains(x.getProperty()))
|
|
|
+ .innerJoin(XjrUser.class, XjrUser::getId, BaseStudentCadre::getUserId)
|
|
|
+ .innerJoin(BaseStudent.class, BaseStudent::getUserId, BaseStudentCadre::getUserId)
|
|
|
+ .innerJoin(BaseStudentPost.class, BaseStudentPost::getId, BaseStudentCadre::getPostId)
|
|
|
+ .leftJoin(BaseClass.class, BaseClass::getId, BaseStudentCadre::getClassId)
|
|
|
+ .leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, BaseStudentCadre::getUserId)).setSize(15);
|
|
|
+
|
|
|
+ PageOutput<BaseStudentCadrePageVo> pageOutput = ConventPage.getPageOutput(page, BaseStudentCadrePageVo.class);
|
|
|
+ return RT.ok(pageOutput);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
@GetMapping(value = "/page")
|
|
|
@ApiOperation(value="学生干部管理列表(分页)")
|
|
|
@SaCheckPermission("basestudentcadre:detail")
|
|
|
public RT<PageOutput<BaseStudentCadrePageVo>> page(@Valid BaseStudentCadrePageDto dto){
|
|
|
-
|
|
|
- MPJLambdaWrapper<BaseStudentCadre> queryWrapper = new MPJLambdaWrapper<>();
|
|
|
- queryWrapper
|
|
|
+ // 如果未传班级id和职务id,
|
|
|
+ if((ObjectUtil.isEmpty(dto.getClassId()) && StrUtil.equals(dto.getLevel(), StudentCadreLevelEnum.CLASS.getCode()))|| ObjectUtil.isEmpty(dto.getPostId())){
|
|
|
+ return RT.ok(new PageOutput<>());
|
|
|
+ }
|
|
|
+ IPage<BaseStudentCadrePageVo> page = baseStudentCadreService.selectJoinListPage(ConventPage.getPage(dto), BaseStudentCadrePageVo.class,
|
|
|
+ MPJWrappers.<BaseStudentCadre>lambdaJoin()
|
|
|
.like(StrUtil.isNotBlank(dto.getUserName()), XjrUser::getName, dto.getUserName())
|
|
|
- .eq(ObjectUtil.isNotEmpty(dto.getOrgId()), BaseStudentCadre::getOrgId, dto.getOrgId())
|
|
|
.eq(ObjectUtil.isNotEmpty(dto.getClassId()), BaseStudentCadre::getClassId, dto.getClassId())
|
|
|
.eq(ObjectUtil.isNotEmpty(dto.getPostId()), BaseStudentCadre::getPostId, dto.getPostId())
|
|
|
- .eq(ObjectUtil.isNotEmpty(dto.getGradeId()), BaseStudentSchoolRoll::getGradeId, dto.getGradeId())
|
|
|
- .eq(ObjectUtil.isNotEmpty(dto.getMajorSetId()), BaseStudentSchoolRoll::getMajorSetId, dto.getMajorSetId())
|
|
|
.eq(ObjectUtil.isNotEmpty(dto.getLevel()), BaseStudentPost::getLevel, dto.getLevel())
|
|
|
- .between(ObjectUtil.isNotNull(dto.getStartTimeStart()) && ObjectUtil.isNotNull(dto.getStartTimeEnd()), BaseStudentCadre::getStartTime,dto.getStartTimeStart(),dto.getStartTimeEnd())
|
|
|
- .between(ObjectUtil.isNotNull(dto.getEndTimeStart()) && ObjectUtil.isNotNull(dto.getEndTimeEnd()), BaseStudentCadre::getEndTime,dto.getEndTimeStart(),dto.getEndTimeEnd())
|
|
|
+ .eq(ObjectUtil.isNotEmpty(dto.getPost()), BaseStudentPost::getPost, dto.getPost())
|
|
|
.orderByDesc(BaseStudentCadre::getId)
|
|
|
- .selectAs(BaseStudent::getStudentId, BaseStudentCadre::getStudentId)
|
|
|
- .selectAs(XjrUser::getName, BaseStudentCadre::getUserName)
|
|
|
- .selectAs(BaseClass::getName, BaseStudentCadre::getClassName)
|
|
|
- .selectAs(BaseStudentPost::getPost, BaseStudentCadre::getPost)
|
|
|
- .selectAs(BaseStudentPost::getLevel, BaseStudentCadre::getLevel)
|
|
|
- .selectAs(Department::getName, BaseStudentCadre::getOrgName)
|
|
|
- .selectAs(XjrUser::getMobile, BaseStudentCadre::getMobile)
|
|
|
- .selectAs(BaseMajorSet::getName, BaseStudentCadre::getMajorSetName)
|
|
|
- .selectAs(BaseGrade::getName, BaseStudentCadre::getGradeName)
|
|
|
+ .selectAs(BaseStudent::getStudentId, BaseStudentCadrePageVo::getStudentId)
|
|
|
+ .selectAs(XjrUser::getName, BaseStudentCadrePageVo::getUserName)
|
|
|
+ .selectAs(BaseClass::getName, BaseStudentCadrePageVo::getClassName)
|
|
|
+ .selectAs(BaseStudentPost::getPost, BaseStudentCadrePageVo::getPost)
|
|
|
+ .selectAs(BaseStudentPost::getLevel, BaseStudentCadrePageVo::getLevel)
|
|
|
.select(BaseStudentCadre::getId)
|
|
|
.select(BaseStudentCadre.class,x -> VoToColumnUtil.fieldsToColumns(BaseStudentCadrePageVo.class).contains(x.getProperty()))
|
|
|
.innerJoin(XjrUser.class, XjrUser::getId, BaseStudentCadre::getUserId)
|
|
|
@@ -93,11 +140,8 @@ public class BaseStudentCadreController {
|
|
|
.innerJoin(BaseStudentPost.class, BaseStudentPost::getId, BaseStudentCadre::getPostId)
|
|
|
.leftJoin(BaseClass.class, BaseClass::getId, BaseStudentCadre::getClassId)
|
|
|
.leftJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getUserId, BaseStudentCadre::getUserId)
|
|
|
- .leftJoin(Department.class, Department::getId, BaseStudentCadre::getOrgId)
|
|
|
- .leftJoin(BaseMajorSet.class, BaseMajorSet::getId, BaseStudentSchoolRoll::getMajorSetId)
|
|
|
- .leftJoin(BaseGrade.class, BaseGrade::getId, BaseStudentSchoolRoll::getGradeId);
|
|
|
+ );
|
|
|
|
|
|
- IPage<BaseStudentCadre> page = baseStudentCadreService.page(ConventPage.getPage(dto), queryWrapper);
|
|
|
PageOutput<BaseStudentCadrePageVo> pageOutput = ConventPage.getPageOutput(page, BaseStudentCadrePageVo.class);
|
|
|
return RT.ok(pageOutput);
|
|
|
}
|
|
|
@@ -115,11 +159,52 @@ public class BaseStudentCadreController {
|
|
|
|
|
|
|
|
|
@PostMapping
|
|
|
- @ApiOperation(value = "新增学生干部管理")
|
|
|
+ @ApiOperation(value = "新增学生干部管理(批量新增)")
|
|
|
@SaCheckPermission("basestudentcadre:add")
|
|
|
public RT<Boolean> add(@Valid @RequestBody List<AddBaseStudentCadreDto> dto){
|
|
|
- List<BaseStudentCadre> baseStudentCadreList = BeanUtil.copyToList(dto, BaseStudentCadre.class);
|
|
|
- boolean isSuccess = baseStudentCadreService.add(baseStudentCadreList);
|
|
|
+ //循环判定,是否已经存在于数据库,并查询出班级id
|
|
|
+ List<AddBaseStudentCadreDto> addDtoList = new ArrayList<>();
|
|
|
+ for (AddBaseStudentCadreDto baseStudentCadreDto : dto) {
|
|
|
+ BaseStudentCadre one = baseStudentCadreService.getOne(
|
|
|
+ Wrappers.lambdaQuery(BaseStudentCadre.class)
|
|
|
+ .eq(BaseStudentCadre::getUserId, baseStudentCadreDto.getUserId())
|
|
|
+ .eq(BaseStudentCadre::getPostId, baseStudentCadreDto.getPostId())
|
|
|
+ );
|
|
|
+ BaseStudentSchoolRoll baseStudentSchoolRoll = baseStudentSchoolRollMapper.selectOne(Wrappers.lambdaQuery(BaseStudentSchoolRoll.class).eq(BaseStudentSchoolRoll::getUserId, baseStudentCadreDto.getUserId()));
|
|
|
+ if(ObjectUtil.isNotNull(one)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(ObjectUtil.isNotNull(baseStudentSchoolRoll)){
|
|
|
+ baseStudentCadreDto.setClassId(baseStudentSchoolRoll.getClassId());
|
|
|
+ }
|
|
|
+ addDtoList.add(baseStudentCadreDto);
|
|
|
+ }
|
|
|
+ List<BaseStudentCadre> baseStudentCadreList = BeanUtil.copyToList(addDtoList, BaseStudentCadre.class);
|
|
|
+ boolean isSuccess = baseStudentCadreService.addAll(baseStudentCadreList);
|
|
|
+ return RT.ok(isSuccess);
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/addone")
|
|
|
+ @ApiOperation(value = "新增学生干部管理(单个添加)")
|
|
|
+ @SaCheckPermission("basestudentcadre:insert")
|
|
|
+ public RT<Boolean> addOne(@Valid @RequestBody AddBaseStudentCadreDto dto){
|
|
|
+ //判定,是否已经存在于数据库,并查询出班级id
|
|
|
+ BaseStudentCadre one = baseStudentCadreService.getOne(
|
|
|
+ Wrappers.lambdaQuery(BaseStudentCadre.class)
|
|
|
+ .eq(BaseStudentCadre::getUserId, dto.getUserId())
|
|
|
+ .eq(BaseStudentCadre::getPostId, dto.getPostId())
|
|
|
+ );
|
|
|
+ if(ObjectUtil.isNotNull(one)){
|
|
|
+ RT.ok("该学生已有该职务,无法重复添加");
|
|
|
+ }
|
|
|
+
|
|
|
+ BaseStudentSchoolRoll baseStudentSchoolRoll = baseStudentSchoolRollMapper.selectOne(Wrappers.lambdaQuery(BaseStudentSchoolRoll.class).eq(BaseStudentSchoolRoll::getUserId, dto.getUserId()));
|
|
|
+ if(ObjectUtil.isNotNull(baseStudentSchoolRoll)){
|
|
|
+ dto.setClassId(baseStudentSchoolRoll.getClassId());
|
|
|
+ }
|
|
|
+
|
|
|
+ BaseStudentCadre baseStudentCadre = BeanUtil.toBean(dto, BaseStudentCadre.class);
|
|
|
+ boolean isSuccess = baseStudentCadreService.addOne(baseStudentCadre);
|
|
|
return RT.ok(isSuccess);
|
|
|
}
|
|
|
|