From 8546b3d285af4235a0ef615a0c6e89486ae2c806 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 17 十月 2024 21:01:37 +0800
Subject: [PATCH] 达梦不支持value改为values

---
 src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java |   64 +++++++++++++++++++++++++++++---
 1 files changed, 58 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java
index 97380a9..5e0059d 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/EducationResourceServiceImpl.java
@@ -1,24 +1,29 @@
 package com.ycl.jxkg.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.github.benmanes.caffeine.cache.Cache;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.ycl.jxkg.base.Result;
+import com.ycl.jxkg.constants.CaffeineConstant;
+import com.ycl.jxkg.context.WebContext;
 import com.ycl.jxkg.domain.entity.EducationResource;
 import com.ycl.jxkg.domain.entity.Subject;
+import com.ycl.jxkg.domain.entity.StudyRecord;
 import com.ycl.jxkg.domain.vo.admin.education.EducationResourceVO;
-import com.ycl.jxkg.domain.vo.student.education.StudentOnlineVO;
+import com.ycl.jxkg.mapper.ClassesUserMapper;
 import com.ycl.jxkg.mapper.EducationResourceMapper;
 import com.ycl.jxkg.mapper.SubjectMapper;
 import com.ycl.jxkg.service.EducationResourceService;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * @author锛歠lq
@@ -26,10 +31,18 @@
  */
 @Service
 @RequiredArgsConstructor
+@Slf4j
 public class EducationResourceServiceImpl implements EducationResourceService {
+
 
     private final EducationResourceMapper mapper;
     private final SubjectMapper subjectMapper;
+    private final WebContext webContext;
+    private final ClassesUserMapper classesUserMapper;
+    @Autowired
+    private Cache<String, Object> caffeineCache;
+    @Value("${spring.config.url}")
+    private String url;
 
     @Override
     public Result add(EducationResourceVO form) {
@@ -41,6 +54,7 @@
         }
         educationResource.setCreateTime(new Date());
         educationResource.setUpdateTime(new Date());
+        educationResource.setCreateUser(webContext.getCurrentUser().getId());
         mapper.add(educationResource);
         return Result.ok("娣诲姞鎴愬姛");
     }
@@ -75,17 +89,27 @@
         page.getList().stream().forEach(item -> {
             item.setContentUrl(JSON.parseObject(item.getContentUrlString(), EducationResourceVO.UploadFile.class));
             item.setAttachment(JSON.parseArray(item.getAttachmentString(), EducationResourceVO.UploadFile.class));
+            item.setVisitUrl(url + "/api/files/" + item.getContentUrl().getUrl());
         });
         return Result.ok(page.getList()).put("total", page.getTotal());
     }
 
     @Override
-    public Result byType(StudentOnlineVO query) {
+    public Result studentPage(EducationResourceVO query) {
+        Integer id = webContext.getCurrentUser().getId();
+        List<Integer> classes = classesUserMapper.getClassesByUserId(id);
+        if (CollectionUtils.isEmpty(classes)) {
+            //瀛︾敓娌℃湁鐝骇
+            List<EducationResourceVO> list = new ArrayList<>();
+            return Result.ok(list).put("total", 0);
+        }
+        query.setClassIds(classes);
         PageInfo<EducationResourceVO> page = PageHelper.startPage(query.getPageNum(), query.getPageSize()).doSelectPageInfo(() ->
-                mapper.byType(query));
+                mapper.studentPage(query));
         page.getList().stream().forEach(item -> {
             item.setContentUrl(JSON.parseObject(item.getContentUrlString(), EducationResourceVO.UploadFile.class));
             item.setAttachment(JSON.parseArray(item.getAttachmentString(), EducationResourceVO.UploadFile.class));
+            item.setVisitUrl(url + "/api/files/" + item.getContentUrl().getUrl());
         });
         return Result.ok(page.getList()).put("total", page.getTotal());
     }
@@ -95,4 +119,32 @@
         List<Subject> subjects = subjectMapper.allSubject();
         return Result.ok(subjects);
     }
+
+    //璁板綍瑙嗛鏃堕暱
+    @Override
+    public Result recordTime(Integer userId) {
+        if (userId == null) {
+            throw new RuntimeException("鐢ㄦ埛id涓虹┖");
+        }
+        Map<String, StudyRecord> studyMap = (Map<String, StudyRecord>) caffeineCache.getIfPresent(CaffeineConstant.STUDY_RECORD);
+        if (!CollectionUtils.isEmpty(studyMap)) {
+            StudyRecord studyRecord = studyMap.get(userId + "");
+            if (studyRecord != null) {
+                //瀛樺湪缂撳瓨
+                Date lastTime = studyRecord.getLastTime();
+                Date now = new Date();
+                studyRecord.setStudyTime(studyRecord.getStudyTime() + (now.getTime() - lastTime.getTime()) / 1000);
+                studyRecord.setLastTime(now);
+            } else {
+                //涓嶅瓨鍦ㄧ紦瀛�
+                studyRecord = new StudyRecord();
+                studyRecord.setStudentId(userId);
+                studyRecord.setStudyTime(0L);
+                studyRecord.setLastTime(new Date());
+            }
+            studyMap.put(userId + "", studyRecord);
+            caffeineCache.put(CaffeineConstant.STUDY_RECORD, studyMap);
+        }
+        return Result.ok();
+    }
 }

--
Gitblit v1.8.0