Ver Fonte

班级动态调整

dzx há 7 meses atrás
pai
commit
65eea1fa5a

+ 31 - 0
src/main/java/com/xjrsoft/module/base/controller/BaseClassDynamicsController.java

@@ -14,14 +14,17 @@ import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.base.dto.AddBaseClassDynamicsDto;
 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.entity.BaseClassDynamics;
 import com.xjrsoft.module.base.entity.BaseClassDynamicsRelation;
 import com.xjrsoft.module.base.service.IBaseClassDynamicsService;
 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.organization.entity.User;
 import com.xjrsoft.module.organization.service.IUserService;
+import com.xjrsoft.module.student.entity.BaseStudent;
 import com.xjrsoft.module.system.entity.File;
 import com.xjrsoft.module.system.service.IFileService;
 import io.swagger.annotations.Api;
@@ -37,6 +40,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
+import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
 
@@ -64,17 +68,44 @@ public class BaseClassDynamicsController {
     public RT<PageOutput<BaseClassDynamicsPageVo>> page(@Valid BaseClassDynamicsPageDto dto) {
         long userId = StpUtil.getLoginIdAsLong();
         MPJLambdaWrapper<BaseClassDynamics> queryWrapper = new MPJLambdaWrapper<>();
+
         queryWrapper
+                .select(BaseClassDynamics::getId)
                 .select(BaseClassDynamics.class, x -> VoToColumnUtil.fieldsToColumns(BaseClassDynamicsPageVo.class).contains(x.getProperty()))
                 .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);
         PageOutput<BaseClassDynamicsPageVo> pageOutput = ConventPage.getPageOutput(page, BaseClassDynamicsPageVo.class);
         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")
     @ApiOperation(value = "班主任发布列表(分页)")
     @SaCheckPermission("baseclassdynamics:detail")

+ 10 - 0
src/main/java/com/xjrsoft/module/base/dto/BaseClassDynamicsPageDto.java

@@ -1,8 +1,12 @@
 package com.xjrsoft.module.base.dto;
 
 import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDate;
 
 
 /**
@@ -15,5 +19,11 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = false)
 public class BaseClassDynamicsPageDto extends PageInput {
 
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty("开始时间")
+    private LocalDate startDate;
 
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty("结束时间")
+    private LocalDate endDate;
 }

+ 27 - 0
src/main/java/com/xjrsoft/module/base/dto/BaseClassDynamicsRelationPageDto.java

@@ -0,0 +1,27 @@
+package com.xjrsoft.module.base.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDate;
+
+
+/**
+ * @title: 班级动态表分页查询入参
+ * @Author dzx
+ * @Date: 2024-09-04
+ * @Version 1.0
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BaseClassDynamicsRelationPageDto extends PageInput {
+
+    @ApiModelProperty("是否已阅读(0:否 1:是)")
+    private Integer readMark;
+
+    @ApiModelProperty("动态id(base_class_dynamics)")
+    private Long baseClassDynamicsId;
+}

+ 27 - 0
src/main/java/com/xjrsoft/module/base/vo/BaseClassDynamicsRelationPageVo.java

@@ -0,0 +1,27 @@
+package com.xjrsoft.module.base.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * @title: 班级动态表分页列表出参
+ * @Author dzx
+ * @Date: 2024-09-04
+ * @Version 1.0
+ */
+@Data
+public class BaseClassDynamicsRelationPageVo {
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("阅读时间")
+    private LocalDateTime readDate;
+
+    @ApiModelProperty("是否已阅读(0:否 1:是)")
+    private Integer readMark;
+
+}