|
@@ -6,6 +6,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
import com.xjrsoft.common.annotation.XjrLog;
|
|
import com.xjrsoft.common.annotation.XjrLog;
|
|
|
import com.xjrsoft.common.model.result.RT;
|
|
import com.xjrsoft.common.model.result.RT;
|
|
|
import com.xjrsoft.common.page.ConventPage;
|
|
import com.xjrsoft.common.page.ConventPage;
|
|
@@ -13,16 +14,17 @@ import com.xjrsoft.common.page.PageOutput;
|
|
|
import com.xjrsoft.common.utils.VoToColumnUtil;
|
|
import com.xjrsoft.common.utils.VoToColumnUtil;
|
|
|
import com.xjrsoft.module.base.dto.AddBaseClassDynamicsDto;
|
|
import com.xjrsoft.module.base.dto.AddBaseClassDynamicsDto;
|
|
|
import com.xjrsoft.module.base.dto.BaseClassDynamicsPageDto;
|
|
import com.xjrsoft.module.base.dto.BaseClassDynamicsPageDto;
|
|
|
|
|
+import com.xjrsoft.module.base.dto.BaseClassDynamicsRelationPageDto;
|
|
|
import com.xjrsoft.module.base.dto.UpdateBaseClassDynamicsDto;
|
|
import com.xjrsoft.module.base.dto.UpdateBaseClassDynamicsDto;
|
|
|
import com.xjrsoft.module.base.entity.BaseClassDynamics;
|
|
import com.xjrsoft.module.base.entity.BaseClassDynamics;
|
|
|
-import com.xjrsoft.module.base.entity.BaseUserStudent;
|
|
|
|
|
|
|
+import com.xjrsoft.module.base.entity.BaseClassDynamicsRelation;
|
|
|
import com.xjrsoft.module.base.service.IBaseClassDynamicsService;
|
|
import com.xjrsoft.module.base.service.IBaseClassDynamicsService;
|
|
|
-import com.xjrsoft.module.base.service.IBaseUserStudentService;
|
|
|
|
|
import com.xjrsoft.module.base.vo.BaseClassDynamicsPageVo;
|
|
import com.xjrsoft.module.base.vo.BaseClassDynamicsPageVo;
|
|
|
|
|
+import com.xjrsoft.module.base.vo.BaseClassDynamicsRelationPageVo;
|
|
|
import com.xjrsoft.module.base.vo.BaseClassDynamicsVo;
|
|
import com.xjrsoft.module.base.vo.BaseClassDynamicsVo;
|
|
|
import com.xjrsoft.module.organization.entity.User;
|
|
import com.xjrsoft.module.organization.entity.User;
|
|
|
import com.xjrsoft.module.organization.service.IUserService;
|
|
import com.xjrsoft.module.organization.service.IUserService;
|
|
|
-import com.xjrsoft.module.student.service.IBaseStudentSchoolRollService;
|
|
|
|
|
|
|
+import com.xjrsoft.module.student.entity.BaseStudent;
|
|
|
import com.xjrsoft.module.system.entity.File;
|
|
import com.xjrsoft.module.system.entity.File;
|
|
|
import com.xjrsoft.module.system.service.IFileService;
|
|
import com.xjrsoft.module.system.service.IFileService;
|
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
@@ -38,7 +40,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
|
|
import javax.validation.Valid;
|
|
import javax.validation.Valid;
|
|
|
-import java.util.ArrayList;
|
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
|
@@ -56,8 +58,6 @@ public class BaseClassDynamicsController {
|
|
|
|
|
|
|
|
|
|
|
|
|
private final IBaseClassDynamicsService baseClassDynamicsService;
|
|
private final IBaseClassDynamicsService baseClassDynamicsService;
|
|
|
- private final IBaseStudentSchoolRollService rollService;
|
|
|
|
|
- private final IBaseUserStudentService userStudentService;
|
|
|
|
|
private final IUserService userService;
|
|
private final IUserService userService;
|
|
|
private final IFileService fileService;
|
|
private final IFileService fileService;
|
|
|
|
|
|
|
@@ -66,34 +66,46 @@ public class BaseClassDynamicsController {
|
|
|
@SaCheckPermission("baseclassdynamics:detail")
|
|
@SaCheckPermission("baseclassdynamics:detail")
|
|
|
@XjrLog(value = "班级动态表列表(分页)")
|
|
@XjrLog(value = "班级动态表列表(分页)")
|
|
|
public RT<PageOutput<BaseClassDynamicsPageVo>> page(@Valid BaseClassDynamicsPageDto dto) {
|
|
public RT<PageOutput<BaseClassDynamicsPageVo>> page(@Valid BaseClassDynamicsPageDto dto) {
|
|
|
- List<String> roleList = StpUtil.getRoleList();
|
|
|
|
|
long userId = StpUtil.getLoginIdAsLong();
|
|
long userId = StpUtil.getLoginIdAsLong();
|
|
|
- Integer roleType = null;
|
|
|
|
|
- List<Long> classIds = new ArrayList<>();
|
|
|
|
|
- if (roleList.contains("STUDENT")) {
|
|
|
|
|
- roleType = 3;
|
|
|
|
|
- classIds.add(rollService.getClassIdByUserId(userId));
|
|
|
|
|
- }
|
|
|
|
|
- if (roleList.contains("PARENT")) {
|
|
|
|
|
- roleType = 4;
|
|
|
|
|
- List<BaseUserStudent> list = userStudentService.list(new QueryWrapper<BaseUserStudent>().lambda().eq(BaseUserStudent::getUserId, userId));
|
|
|
|
|
- for (BaseUserStudent userStudent : list) {
|
|
|
|
|
- classIds.add(rollService.getClassIdByUserId(userStudent.getStudentId()));
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ MPJLambdaWrapper<BaseClassDynamics> queryWrapper = new MPJLambdaWrapper<>();
|
|
|
|
|
|
|
|
- LambdaQueryWrapper<BaseClassDynamics> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
queryWrapper
|
|
queryWrapper
|
|
|
- .orderByDesc(BaseClassDynamics::getId)
|
|
|
|
|
|
|
+ .select(BaseClassDynamics::getId)
|
|
|
.select(BaseClassDynamics.class, x -> VoToColumnUtil.fieldsToColumns(BaseClassDynamicsPageVo.class).contains(x.getProperty()))
|
|
.select(BaseClassDynamics.class, x -> VoToColumnUtil.fieldsToColumns(BaseClassDynamicsPageVo.class).contains(x.getProperty()))
|
|
|
- .like(roleType != null, BaseClassDynamics::getRoleType, roleType)
|
|
|
|
|
- .in(!classIds.isEmpty(), BaseClassDynamics::getClassId, classIds)
|
|
|
|
|
|
|
+ .innerJoin(BaseClassDynamicsRelation.class, BaseClassDynamicsRelation::getBaseClassDynamicsId, BaseClassDynamics::getId)
|
|
|
|
|
+ .eq(BaseClassDynamicsRelation::getUserId, userId)
|
|
|
|
|
+ .orderByDesc(BaseClassDynamics::getId)
|
|
|
;
|
|
;
|
|
|
|
|
+ if(dto.getStartDate() != null && dto.getEndDate() != null){
|
|
|
|
|
+ queryWrapper.between(BaseClassDynamics::getCreateDate, dto.getStartDate().atStartOfDay(), dto.getEndDate().atTime(23,59,59));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
IPage<BaseClassDynamics> page = baseClassDynamicsService.page(ConventPage.getPage(dto), queryWrapper);
|
|
IPage<BaseClassDynamics> page = baseClassDynamicsService.page(ConventPage.getPage(dto), queryWrapper);
|
|
|
PageOutput<BaseClassDynamicsPageVo> pageOutput = ConventPage.getPageOutput(page, BaseClassDynamicsPageVo.class);
|
|
PageOutput<BaseClassDynamicsPageVo> pageOutput = ConventPage.getPageOutput(page, BaseClassDynamicsPageVo.class);
|
|
|
return RT.ok(pageOutput);
|
|
return RT.ok(pageOutput);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @GetMapping(value = "/reader-page")
|
|
|
|
|
+ @ApiOperation(value = "班级动态读者信息(分页)")
|
|
|
|
|
+ @SaCheckPermission("baseclassdynamics:detail")
|
|
|
|
|
+ @XjrLog(value = "班级动态读者信息(分页)")
|
|
|
|
|
+ public RT<PageOutput<BaseClassDynamicsRelationPageVo>> page(@Valid BaseClassDynamicsRelationPageDto dto) {
|
|
|
|
|
+ MPJLambdaWrapper<User> queryWrapper = new MPJLambdaWrapper<>();
|
|
|
|
|
+ queryWrapper
|
|
|
|
|
+ .select(User::getId)
|
|
|
|
|
+ .select(User.class, x -> VoToColumnUtil.fieldsToColumns(User.class).contains(x.getProperty()))
|
|
|
|
|
+ .select(BaseClassDynamicsRelation::getReadDate)
|
|
|
|
|
+ .select(BaseClassDynamicsRelation::getReadMark)
|
|
|
|
|
+ .innerJoin(BaseClassDynamicsRelation.class, BaseClassDynamicsRelation::getUserId, User::getId)
|
|
|
|
|
+ .innerJoin(BaseStudent.class, BaseStudent::getUserId, User::getId)
|
|
|
|
|
+ .eq(dto.getReadMark() != null, BaseClassDynamicsRelation::getReadMark, dto.getReadMark())
|
|
|
|
|
+ .eq(BaseClassDynamicsRelation::getBaseClassDynamicsId, dto.getBaseClassDynamicsId())
|
|
|
|
|
+ ;
|
|
|
|
|
+ IPage<BaseClassDynamicsRelationPageVo> page = userService.selectJoinListPage(ConventPage.getPage(dto), BaseClassDynamicsRelationPageVo.class, queryWrapper);
|
|
|
|
|
+ PageOutput<BaseClassDynamicsRelationPageVo> pageOutput = ConventPage.getPageOutput(page, BaseClassDynamicsRelationPageVo.class);
|
|
|
|
|
+ return RT.ok(pageOutput);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@GetMapping(value = "/release-page")
|
|
@GetMapping(value = "/release-page")
|
|
|
@ApiOperation(value = "班主任发布列表(分页)")
|
|
@ApiOperation(value = "班主任发布列表(分页)")
|
|
|
@SaCheckPermission("baseclassdynamics:detail")
|
|
@SaCheckPermission("baseclassdynamics:detail")
|
|
@@ -140,9 +152,7 @@ public class BaseClassDynamicsController {
|
|
|
@SaCheckPermission("baseclassdynamics:add")
|
|
@SaCheckPermission("baseclassdynamics:add")
|
|
|
@XjrLog(value = "新增班级动态表", saveResponseData = true)
|
|
@XjrLog(value = "新增班级动态表", saveResponseData = true)
|
|
|
public RT<Boolean> add(@Valid @RequestBody AddBaseClassDynamicsDto dto) {
|
|
public RT<Boolean> add(@Valid @RequestBody AddBaseClassDynamicsDto dto) {
|
|
|
- BaseClassDynamics baseClassDynamics = BeanUtil.toBean(dto, BaseClassDynamics.class);
|
|
|
|
|
- baseClassDynamics.setCreateDate(new Date());
|
|
|
|
|
- boolean isSuccess = baseClassDynamicsService.save(baseClassDynamics);
|
|
|
|
|
|
|
+ Boolean isSuccess = baseClassDynamicsService.add(dto);
|
|
|
return RT.ok(isSuccess);
|
|
return RT.ok(isSuccess);
|
|
|
}
|
|
}
|
|
|
|
|
|