Răsfoiți Sursa

Merge branch 'dev' of http://192.168.1.245:11111/jinjilong/onlineEducation-fwd into dev

honorfire 7 luni în urmă
părinte
comite
fed1129884
12 a modificat fișierele cu 187 adăugiri și 29 ștergeri
  1. 1 3
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/controller/student/TExamController.java
  2. 4 0
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/domain/exam/TExamPageParam.java
  3. 2 0
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/TExamMapper.java
  4. 48 0
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/mapping/TExamMapper.xml
  5. 2 0
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/TExamService.java
  6. 16 0
      snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/TExamServiceImpl.java
  7. 11 2
      snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postinfo/controller/ForumPostInfoController.java
  8. 5 0
      snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postinfo/service/ForumPostInfoService.java
  9. 52 24
      snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postinfo/service/impl/ForumPostInfoServiceImpl.java
  10. 10 0
      snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postreply/entity/ForumPostReply.java
  11. 9 0
      snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postreply/service/ForumPostReplyService.java
  12. 27 0
      snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postreply/service/impl/ForumPostReplyServiceImpl.java

+ 1 - 3
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/controller/student/TExamController.java

@@ -22,7 +22,6 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.exam.base.BaseApiController;
 import vip.xiaonuo.exam.domain.exam.TExamIdParam;
@@ -60,8 +59,7 @@ public class TExamController extends BaseApiController {
     @SaCheckPermission("/api/admin/s_exam/page")
     @GetMapping("/page")
     public CommonResult<Page<TExamVo>> page(TExamPageParam tExamPageParam) {
-         tExamPageParam.setUserId(StpLoginUserUtil.getLoginUser().getId());
-        return CommonResult.data(tExamService.page(tExamPageParam));
+        return CommonResult.data(tExamService.studentPage(tExamPageParam));
     }
 
     /**

+ 4 - 0
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/domain/exam/TExamPageParam.java

@@ -86,4 +86,8 @@ public class TExamPageParam {
 
     @ApiModelProperty(value = "学期id", position = 15)
     private String semesterId;
+
+    private String createUser;
+
+
 }

+ 2 - 0
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/TExamMapper.java

@@ -34,4 +34,6 @@ public interface TExamMapper extends BaseMapper<TExam> {
     TExamVo detail(String id);
 
     List<TExamPaperStastic> stasticByPaperId(String paperId);
+
+    Page<TExamVo> queryStudentList(Page<Object> objectPage, TExamPageParam tExamPageParam);
 }

+ 48 - 0
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/mapper/mapping/TExamMapper.xml

@@ -37,11 +37,59 @@
         <if test="tExamPageParam.examType != null and tExamPageParam.examType != ''">
             and a.EXAM_TYPE = #{tExamPageParam.examType}
         </if>
+        <if test="tExamPageParam.createUser != null and tExamPageParam.createUser != ''">
+            and a.CREATE_USER = #{tExamPageParam.createUser}
+        </if>
         and  a.DELETED=0
     </where>
     order by a.CREATE_TIME desc
    </select>
 
+
+    <select id="queryStudentList" resultType="vip.xiaonuo.exam.vo.TExamVo">
+        SELECT
+        a.ID id,
+        a.EXAM_NAME examName,
+        a.STUDENT_IDS studentIds,
+        a.EXAM_STATUS examStatus,
+        a.CREATE_TIME createTime,
+        a.CREATE_USER createUser,
+        a.UPDATE_TIME updateTime,
+        a.CHAPTER_ID chapterId,
+        a.START_TIME startTime,
+        a.END_TIME endTime,
+        a.PAPER_ID paperId,
+        a.DELETED deleted,
+        a.START_JOB_ID startJobId,
+        a.END_JOB_ID endJobId,
+        a.EXAM_TYPE examType,
+        a.SEMESTER_ID semesterId,
+        c.name semesterName,
+        a.course_id courseId
+        FROM
+        ONLINEEDU.T_EXAM a
+        LEFT JOIN  SEMESTER c ON a.SEMESTER_ID =c.ID
+        <where>
+            <if test="tExamPageParam.examName != null and tExamPageParam.examName != ''">
+                a.EXAM_NAME like '%'||#{tExamPageParam.examName}||'%'
+            </if>
+            <if test="tExamPageParam.examStatus != null and tExamPageParam.examStatus != ''">
+                and a.EXAM_STATUS = #{tExamPageParam.examStatus}
+            </if>
+            <if test="tExamPageParam.semesterId != null and tExamPageParam.semesterId != ''">
+                and a.SEMESTER_ID = #{tExamPageParam.semesterId}
+            </if>
+            <if test="tExamPageParam.examType != null and tExamPageParam.examType != ''">
+                and a.EXAM_TYPE = #{tExamPageParam.examType}
+            </if>
+            <if test="tExamPageParam.createUser != null and tExamPageParam.createUser != ''">
+                and a.STUDENT_IDS like concat('%',#{tExamPageParam.createUser},'%')
+            </if>
+            and  a.DELETED=0
+        </where>
+        order by a.CREATE_TIME desc
+    </select>
+
     <select id="detail" resultType="vip.xiaonuo.exam.vo.TExamVo">
         SELECT
             a.ID id,

+ 2 - 0
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/TExamService.java

@@ -81,4 +81,6 @@ public interface TExamService extends IService<TExam> {
     TExam queryEntity(String id);
 
     List<TExamPaperStastic> stasticByPaperId(String paperId);
+
+    Page<TExamVo> studentPage(TExamPageParam tExamPageParam);
 }

+ 16 - 0
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/TExamServiceImpl.java

@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.page.CommonPageRequest;
 import vip.xiaonuo.dev.api.DevJobApi;
@@ -84,10 +85,24 @@ public class TExamServiceImpl extends ServiceImpl<TExamMapper, TExam> implements
 
     @Override
     public Page<TExamVo> page(TExamPageParam tExamPageParam) {
+        if(!StpLoginUserUtil.getLoginUser().getAccount().equals("superAdmin")){
+            tExamPageParam.setCreateUser(StpLoginUserUtil.getLoginUser().getId());
+        }
         Page<TExamVo> page = tExamMapper.queryList(CommonPageRequest.defaultPage(), tExamPageParam);
         return page;
     }
 
+
+    @Override
+    public Page<TExamVo> studentPage(TExamPageParam tExamPageParam) {
+        if(!StpLoginUserUtil.getLoginUser().getAccount().equals("superAdmin")){
+            tExamPageParam.setCreateUser(StpLoginUserUtil.getLoginUser().getAccount());
+        }
+        Page<TExamVo> page = tExamMapper.queryStudentList(CommonPageRequest.defaultPage(), tExamPageParam);
+        return page;
+    }
+
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void add(TExamAddParam tExamAddParam) {
@@ -279,6 +294,7 @@ public class TExamServiceImpl extends ServiceImpl<TExamMapper, TExam> implements
     }
 
 
+
     public TExam addJob(TExam tExam, String startOnEnd){
         JSONObject jobParam = new JSONObject();
         jobParam.put("name", tExam.getId()+"-"+tExam.getExamName()+"-"+tExam.getPaperId());

+ 11 - 2
snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postinfo/controller/ForumPostInfoController.java

@@ -180,11 +180,20 @@ public class ForumPostInfoController {
     /**
      * 根据课程id和课时id,查询相关帖子信息
      */
-    @PostMapping("/forum/postinfo/getChapter")
-    public CommonResult<ForumPostInfoVo> getChapter(@RequestBody ChapterDiscussionParam chapterDiscussionParam) {
+    @GetMapping("/forum/postinfo/getChapter")
+    public CommonResult<ForumPostInfoVo> getChapter(@Valid ChapterDiscussionParam chapterDiscussionParam) {
         return CommonResult.data(forumPostInfoService.getChapter(chapterDiscussionParam));
     }
 
+    /**
+     * 统计:根据日期查询发帖和回帖数
+     */
+    @PostMapping("/forum/postinfo/getCountByDate")
+    public CommonResult<JSONObject> getCountByDate(@RequestBody JSONObject json) {
+        return forumPostInfoService.getCountByDate(json);
+    }
+
+
 
 
 }

+ 5 - 0
snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postinfo/service/ForumPostInfoService.java

@@ -114,4 +114,9 @@ public interface ForumPostInfoService extends IService<ForumPostInfo> {
      * 根据课程id和课时id,查询相关帖子信息
      */
     ForumPostInfoVo getChapter(ChapterDiscussionParam chapterDiscussionParam);
+
+    /**
+     * 统计:根据日期查询发帖和回帖数
+     */
+    CommonResult<JSONObject> getCountByDate(JSONObject json);
 }

+ 52 - 24
snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postinfo/service/impl/ForumPostInfoServiceImpl.java

@@ -148,22 +148,28 @@ public class ForumPostInfoServiceImpl extends ServiceImpl<ForumPostInfoMapper, F
                     forumPostInfo.setTypeName(forumPostType.getTypeName());
                 }
                 // 关联发帖用户的信息
-                JSONObject user = sysUserApi.getUserByIdWithoutException(forumPostInfo.getUserId());
-                if (user != null) {
-                    forumPostInfo.setUserNickName(user.getStr("name"));
-                    forumPostInfo.setUserAvatar(user.getStr("avatar"));
+                if (forumPostInfo.getUserId() != null) {
+                    JSONObject user = sysUserApi.getUserByIdWithoutException(forumPostInfo.getUserId());
+                    if (user != null) {
+                        forumPostInfo.setUserNickName(user.getStr("name"));
+                        forumPostInfo.setUserAvatar(user.getStr("avatar"));
+                    }
                 }
                 // 关联最后发帖用户的信息
-                JSONObject lastReplyUser = sysUserApi.getUserByIdWithoutException(forumPostInfo.getLastReplyUserId());
-                if (lastReplyUser != null) {
-                    forumPostInfo.setLastReplyUserNickName(lastReplyUser.getStr("name"));
-                    forumPostInfo.setLastReplyUserAvatar(lastReplyUser.getStr("avatar"));
+                if (forumPostInfo.getLastReplyUserId() != null) {
+                    JSONObject lastReplyUser = sysUserApi.getUserByIdWithoutException(forumPostInfo.getLastReplyUserId());
+                    if (lastReplyUser != null) {
+                        forumPostInfo.setLastReplyUserNickName(lastReplyUser.getStr("name"));
+                        forumPostInfo.setLastReplyUserAvatar(lastReplyUser.getStr("avatar"));
+                    }
                 }
                 // 校验帖子是否为自己的
-                if (forumPostInfo.getUserId().equals(StpLoginUserUtil.getLoginUser().getId())) {
-                    forumPostInfo.setIsSelf(1);
-                } else {
-                    forumPostInfo.setIsSelf(0);
+                if (forumPostInfo.getUserId() != null) {
+                    if (forumPostInfo.getUserId().equals(StpLoginUserUtil.getLoginUser().getId())) {
+                        forumPostInfo.setIsSelf(1);
+                    } else {
+                        forumPostInfo.setIsSelf(0);
+                    }
                 }
             }
         }
@@ -297,10 +303,12 @@ public class ForumPostInfoServiceImpl extends ServiceImpl<ForumPostInfoMapper, F
             forumPostInfoVo.setLastReplyUserAvatar(lastReplyUser.getStr("avatar"));
         }
         // 校验此条帖子是否为自己的
-        if (forumPostInfo.getUserId().equals(StpLoginUserUtil.getLoginUser().getId())) {
-            forumPostInfoVo.setIsSelf(1);
-        } else {
-            forumPostInfoVo.setIsSelf(0);
+        if (forumPostInfo.getUserId() != null) {
+            if (forumPostInfo.getUserId().equals(StpLoginUserUtil.getLoginUser().getId())) {
+                forumPostInfoVo.setIsSelf(1);
+            } else {
+                forumPostInfoVo.setIsSelf(0);
+            }
         }
         // 查询是否点赞
         QueryWrapper<ForumPostLike> queryWrapper3 = new QueryWrapper<>();
@@ -477,10 +485,12 @@ public class ForumPostInfoServiceImpl extends ServiceImpl<ForumPostInfoMapper, F
                     forumPostInfo.setLastReplyUserAvatar(lastReplyUser.getStr("avatar"));
                 }
                 // 校验帖子是否为自己的
-                if (forumPostInfo.getUserId().equals(StpLoginUserUtil.getLoginUser().getId())) {
-                    forumPostInfo.setIsSelf(1);
-                } else {
-                    forumPostInfo.setIsSelf(0);
+                if (forumPostInfo.getUserId() != null) {
+                    if (forumPostInfo.getUserId().equals(StpLoginUserUtil.getLoginUser().getId())) {
+                        forumPostInfo.setIsSelf(1);
+                    } else {
+                        forumPostInfo.setIsSelf(0);
+                    }
                 }
             }
         }
@@ -544,10 +554,12 @@ public class ForumPostInfoServiceImpl extends ServiceImpl<ForumPostInfoMapper, F
                     forumPostInfo.setLastReplyUserAvatar(lastReplyUser.getStr("avatar"));
                 }
                 // 校验帖子是否为自己的
-                if (forumPostInfo.getUserId().equals(StpLoginUserUtil.getLoginUser().getId())) {
-                    forumPostInfo.setIsSelf(1);
-                } else {
-                    forumPostInfo.setIsSelf(0);
+                if (forumPostInfo.getUserId() != null) {
+                    if (forumPostInfo.getUserId().equals(StpLoginUserUtil.getLoginUser().getId())) {
+                        forumPostInfo.setIsSelf(1);
+                    } else {
+                        forumPostInfo.setIsSelf(0);
+                    }
                 }
             }
         }
@@ -702,6 +714,22 @@ public class ForumPostInfoServiceImpl extends ServiceImpl<ForumPostInfoMapper, F
         return forumPostInfoVo;
     }
 
+    @Override
+    public CommonResult<com.alibaba.fastjson.JSONObject> getCountByDate(com.alibaba.fastjson.JSONObject json) {
+        // 取出起始时间和截止时间
+        String startTime = json.getString("startTime");
+        String endTime = json.getString("endTime");
+        // 计算两个时间段内的发帖数和回帖数
+        // 1.发帖数
+        long postCountByDateAndType = forumPostReplyService.getPostCountByDateAndType(startTime, endTime, 3);
+        // 2.回帖数
+        long replyCountByDateAndType = forumPostReplyService.getReplyCountByDateAndType(startTime, endTime, 3);
+        com.alibaba.fastjson.JSONObject result = new com.alibaba.fastjson.JSONObject();
+        result.put("postCount", postCountByDateAndType);
+        result.put("replyCount", replyCountByDateAndType);
+        return CommonResult.data(result);
+    }
+
     /**
      * 自动创建章节讨论类型的帖子
      */

+ 10 - 0
snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postreply/entity/ForumPostReply.java

@@ -111,4 +111,14 @@ public class ForumPostReply {
      */
     @TableField(exist = false)
     private List<ForumPostReply> children;
+
+    /**
+     * 回复用户身份 0管理员,1老师,2学生
+     */
+    private Integer userEduIdentity;
+
+    /**
+     * 帖子类型
+     */
+    private Integer postType;
 }

+ 9 - 0
snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postreply/service/ForumPostReplyService.java

@@ -79,4 +79,13 @@ public interface ForumPostReplyService extends IService<ForumPostReply> {
      **/
     ForumPostReply queryEntity(String id);
 
+    /**
+     * 查询两个时间段内的发帖数
+     */
+    long getPostCountByDateAndType(String startTime, String endTime, Integer postType);
+
+    /**
+     * 查询两个时间段的回帖数
+     */
+    long getReplyCountByDateAndType(String startTime, String endTime, Integer postType);
 }

+ 27 - 0
snowy-plugin/snowy-plugin-forum/snowy-plugin-forum-func/src/main/java/vip/xiaonuo/forum/modular/postreply/service/impl/ForumPostReplyServiceImpl.java

@@ -47,6 +47,7 @@ import vip.xiaonuo.forum.modular.sensitivityrecord.mapper.ForumSensitivityRecord
 import vip.xiaonuo.sys.api.SysUserApi;
 
 import javax.annotation.Resource;
+import java.time.LocalDate;
 import java.util.Date;
 import java.util.List;
 
@@ -150,7 +151,13 @@ public class ForumPostReplyServiceImpl extends ServiceImpl<ForumPostReplyMapper,
         ForumPostReply forumPostReply = BeanUtil.toBean(forumPostReplyAddParam, ForumPostReply.class);
         // 设置用户
         SaBaseLoginUser loginUser = StpLoginUserUtil.getLoginUser();
+        JSONObject userByIdWithoutException = sysUserApi.getUserByIdWithoutException(loginUser.getId());
         forumPostReply.setUserId(loginUser.getId());
+        if (userByIdWithoutException != null) {
+            forumPostReply.setUserEduIdentity(userByIdWithoutException.getInt("eduIdentity"));
+        }
+        // 设置帖子的类型
+        forumPostReply.setPostType(forumPostInfo.getPostType());
         // 过滤敏感词
         String replyContent = filterSensitivity(forumPostReplyAddParam.getReplyContent(), loginUser, forumPostReplyAddParam.getPostId());
         forumPostReply.setReplyContent(replyContent);
@@ -239,4 +246,24 @@ public class ForumPostReplyServiceImpl extends ServiceImpl<ForumPostReplyMapper,
         return forumPostReply;
     }
 
+    /**
+     * 查询两个时间段的发帖数
+     */
+    public long getPostCountByDateAndType(String startTime, String endTime, Integer postType) {
+        QueryWrapper<ForumPostReply> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ForumPostReply::getPostType, 3);
+        queryWrapper.lambda().between(ForumPostReply::getCreateTime, startTime, endTime);
+        queryWrapper.lambda().eq(ForumPostReply::getParentId, "-1");
+        return this.count(queryWrapper);
+    }
+
+    @Override
+    public long getReplyCountByDateAndType(String startTime, String endTime, Integer postType) {
+        QueryWrapper<ForumPostReply> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ForumPostReply::getPostType, 3);
+        queryWrapper.lambda().between(ForumPostReply::getCreateTime, startTime, endTime);
+        queryWrapper.lambda().notIn(ForumPostReply::getParentId, "-1");
+        return this.count(queryWrapper);
+    }
+
 }