diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java index d3aab9d..5d51e73 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java @@ -64,6 +64,6 @@ public interface CacheNames { * 在线用户 */ String ONLINE_TOKEN = "online_tokens"; - String SYS_QUESTION_ANSWER = "scale:question_answer#3d"; + String SYS_QUESTION_ANSWER = "scale:question_answer"; } diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java index da48079..278295d 100644 --- a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java +++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java @@ -54,7 +54,9 @@ public class LoginHelper { StpUtil.login(loginUser.getLoginId(), model.setExtra(USER_KEY, loginUser.getUserId()) .setExtra(DEPT_KEY, loginUser.getDeptId())); - StpUtil.getTokenSession().set(LOGIN_USER_KEY, loginUser); + SaSession tokenSession = StpUtil.getTokenSession(); + tokenSession.updateTimeout(model.getTimeout()); + tokenSession.set(LOGIN_USER_KEY, loginUser); } /** diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/web/WebController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/web/WebController.java index 75df539..612f94c 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/web/WebController.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/web/WebController.java @@ -8,9 +8,11 @@ import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.web.core.BaseController; +import org.dromara.scale.domain.bo.SysEvaluationAnswerBo; import org.dromara.scale.domain.bo.SysEvaluationRecordBo; import org.dromara.scale.domain.vo.QuestionAnswerVo; import org.dromara.scale.domain.vo.SysScalePublishVo; +import org.dromara.scale.service.ISysEvaluationConclusionService; import org.dromara.scale.service.ISysEvaluationRecordService; import org.dromara.scale.service.ISysScaleAnswerService; import org.dromara.scale.service.ISysScalePublishService; @@ -18,6 +20,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; /** *

TODO

@@ -38,6 +41,8 @@ public class WebController extends BaseController { private final ISysScaleAnswerService scaleAnswerService; + private final ISysEvaluationConclusionService evaluationConclusionService; + /** * 查询发布量表 @@ -73,8 +78,8 @@ public class WebController extends BaseController { @Log(title = "量测记录", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping("/record/answer") - public R add(@Validated(AddGroup.class) @RequestBody SysEvaluationRecordBo bo) { + public R> add(@Validated(AddGroup.class) @RequestBody List answerList) { //todo - return R.ok(evaluationRecordService.insertByBo(bo)); + return R.ok(evaluationConclusionService.submitAnswer(answerList)); } } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysEvaluationAnswerBo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysEvaluationAnswerBo.java index db475b6..f98e0bc 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysEvaluationAnswerBo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysEvaluationAnswerBo.java @@ -1,10 +1,7 @@ package org.dromara.scale.domain.bo; import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotNull; import lombok.Data; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; import org.dromara.scale.domain.SysEvaluationAnswer; /** @@ -20,25 +17,25 @@ public class SysEvaluationAnswerBo { /** * */ - @NotNull(message = "不能为空", groups = { EditGroup.class }) + //@NotNull(message = "不能为空", groups = { EditGroup.class }) private Long id; /** * td_evaluation_record表id */ - @NotNull(message = "td_evaluation_record表id不能为空", groups = { AddGroup.class, EditGroup.class }) + //@NotNull(message = "td_evaluation_record表id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long recordId; /** * 题目id */ - @NotNull(message = "题目id不能为空", groups = { AddGroup.class, EditGroup.class }) + //@NotNull(message = "题目id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long questionId; /** * 答案id */ - @NotNull(message = "答案id不能为空", groups = { AddGroup.class, EditGroup.class }) + //@NotNull(message = "答案id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long answerId; diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleVo.java index be2719f..66ffc1f 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleVo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleVo.java @@ -136,4 +136,7 @@ public class SysScaleVo implements Serializable { */ @ExcelProperty(value = "测评时间") private String scaleTime; + + + private boolean used; } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysEvaluationRecordMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysEvaluationRecordMapper.java index 527ea87..52433c6 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysEvaluationRecordMapper.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysEvaluationRecordMapper.java @@ -1,9 +1,12 @@ package org.dromara.scale.mapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.scale.domain.SysEvaluationRecord; import org.dromara.scale.domain.vo.SysEvaluationRecordVo; -import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +import java.util.List; /** * 量测记录Mapper接口 @@ -14,4 +17,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; @Mapper public interface SysEvaluationRecordMapper extends BaseMapperPlus { + List selectSclaeRecordListByUserAndBatch(@Param("userId") Long userId, @Param("batchNo") Long batchNo); + } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleMapper.java index f1d1d33..51228ba 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleMapper.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleMapper.java @@ -1,9 +1,11 @@ package org.dromara.scale.mapper; import org.apache.ibatis.annotations.Mapper; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.scale.domain.SysScale; import org.dromara.scale.domain.vo.SysScaleVo; -import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +import java.util.List; /** * 心理测评量Mapper接口 @@ -14,4 +16,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; @Mapper public interface SysScaleMapper extends BaseMapperPlus { + List selectPublishListByIds(List list); + } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysEvaluationConclusionService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysEvaluationConclusionService.java index 917c7d2..23d2e4f 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysEvaluationConclusionService.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysEvaluationConclusionService.java @@ -2,10 +2,12 @@ package org.dromara.scale.service; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.scale.domain.bo.SysEvaluationAnswerBo; import org.dromara.scale.domain.bo.SysEvaluationConclusionBo; import org.dromara.scale.domain.vo.SysEvaluationConclusionVo; import java.util.List; +import java.util.Map; /** * 量测结果Service接口 @@ -30,5 +32,5 @@ public interface ISysEvaluationConclusionService { */ List queryList(SysEvaluationConclusionBo bo); - + Map submitAnswer(List answerList); } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysEvaluationConclusionServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysEvaluationConclusionServiceImpl.java index 588605f..6a7e911 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysEvaluationConclusionServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysEvaluationConclusionServiceImpl.java @@ -7,13 +7,16 @@ import lombok.RequiredArgsConstructor; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.scale.domain.SysEvaluationConclusion; +import org.dromara.scale.domain.bo.SysEvaluationAnswerBo; import org.dromara.scale.domain.bo.SysEvaluationConclusionBo; import org.dromara.scale.domain.vo.SysEvaluationConclusionVo; +import org.dromara.scale.mapper.SysEvaluationAnswerMapper; import org.dromara.scale.mapper.SysEvaluationConclusionMapper; import org.dromara.scale.service.ISysEvaluationConclusionService; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Map; /** * 量测结果Service业务层处理 @@ -27,11 +30,13 @@ public class SysEvaluationConclusionServiceImpl implements ISysEvaluationConclus private final SysEvaluationConclusionMapper baseMapper; + private final SysEvaluationAnswerMapper answerMapper; + /** * 查询量测结果 */ @Override - public SysEvaluationConclusionVo queryById(Long id){ + public SysEvaluationConclusionVo queryById(Long id) { return baseMapper.selectVoById(id); } @@ -69,8 +74,20 @@ public class SysEvaluationConclusionServiceImpl implements ISysEvaluationConclus /** * 保存前的数据校验 */ - private void validEntityBeforeSave(SysEvaluationConclusion entity){ + private void validEntityBeforeSave(SysEvaluationConclusion entity) { //TODO 做一些数据校验,如唯一约束 } + @Override + public Map submitAnswer(List answerList) { + + //answerMapper.insertBatch(); + return null; + } + + private List calculateEvaluationResult() { + boolean allowQueryResult = true; + + return null; + } } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysEvaluationRecordServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysEvaluationRecordServiceImpl.java index 7e58f7c..5186ff2 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysEvaluationRecordServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysEvaluationRecordServiceImpl.java @@ -87,6 +87,8 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi + + /** * 保存前的数据校验 */ diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java index 77b777c..3ce9394 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java @@ -11,11 +11,16 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.scale.domain.SysScalePublish; import org.dromara.scale.domain.bo.SysScalePublishBo; +import org.dromara.scale.domain.vo.SysEvaluationRecordVo; import org.dromara.scale.domain.vo.SysScalePublishVo; +import org.dromara.scale.domain.vo.SysScaleVo; +import org.dromara.scale.mapper.SysEvaluationRecordMapper; +import org.dromara.scale.mapper.SysScaleMapper; import org.dromara.scale.mapper.SysScalePublishMapper; import org.dromara.scale.service.ISysScalePublishService; import org.springframework.stereotype.Service; +import java.util.Arrays; import java.util.Collection; import java.util.Date; import java.util.List; @@ -34,6 +39,10 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { private final SysScalePublishMapper baseMapper; + private final SysScaleMapper scaleMapper; + + private final SysEvaluationRecordMapper recordMapper; + /** * 查询量发布 */ @@ -123,6 +132,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { @Override public SysScalePublishVo queryPublishScale() { LoginUser loginUser = getLoginUser(); + Long userId = loginUser.getUserId(); Long deptId = loginUser.getDeptId(); SysScalePublishVo sysScalePublishVo = null; //先查询有用户组的发布 @@ -133,12 +143,22 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { sysScalePublishVo = baseMapper.selectVoOne(lqw); } //如果没用户组或者有用户组的发布为空,则查针对全部的发布 - if(sysScalePublishVo == null){ + if (sysScalePublishVo == null) { LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(SysScalePublish::getDeptId, null); lqw.eq(SysScalePublish::getStatus, 0); sysScalePublishVo = baseMapper.selectVoOne(lqw); } + Long batchNo = sysScalePublishVo.getBatchNo(); + List idList = Arrays.stream(sysScalePublishVo.getScaleIds().split(",")) + .mapToLong(Long::valueOf).boxed().toList(); + List publishScaleVos = scaleMapper.selectPublishListByIds(idList); + List recordVos = recordMapper.selectSclaeRecordListByUserAndBatch(userId, batchNo); + for (SysEvaluationRecordVo recordVo : recordVos) { + publishScaleVos.stream().filter(p -> p.getScaleId().equals(recordVo.getScaleId())) + .findFirst().ifPresent(m -> m.setUsed(true)); + } + sysScalePublishVo.setScaleList(publishScaleVos); return sysScalePublishVo; } } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleQuestionServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleQuestionServiceImpl.java index 603adc7..add5c60 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleQuestionServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleQuestionServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; +import org.dromara.common.core.constant.CacheNames; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; @@ -16,6 +17,8 @@ import org.dromara.scale.domain.vo.SysScaleQuestionVo; import org.dromara.scale.mapper.SysScaleAnswerMapper; import org.dromara.scale.mapper.SysScaleQuestionMapper; import org.dromara.scale.service.ISysScaleQuestionService; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Caching; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -84,11 +87,11 @@ public class SysScaleQuestionServiceImpl implements ISysScaleQuestionService { /** * 新增量问题内容 */ + @CacheEvict(cacheNames = CacheNames.SYS_QUESTION_ANSWER, key = "#bo.scaleId") @Transactional(rollbackFor = Exception.class) @Override public Boolean insertByBo(SysScaleQuestionBo bo) { SysScaleQuestion add = MapstructUtils.convert(bo, SysScaleQuestion.class); - validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -110,6 +113,9 @@ public class SysScaleQuestionServiceImpl implements ISysScaleQuestionService { /** * 修改量问题内容 */ + @Caching(evict = { + @CacheEvict(cacheNames = CacheNames.SYS_QUESTION_ANSWER, key = "#bo.scaleId"), + @CacheEvict(cacheNames = CacheNames.SYS_QUESTION_ANSWER, key = "#bo.scaleId")}) @Transactional(rollbackFor = Exception.class) @Override public Boolean updateByBo(SysScaleQuestionBo bo) { diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysEvaluationRecordMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysEvaluationRecordMapper.xml index e152a63..31ea4a3 100644 --- a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysEvaluationRecordMapper.xml +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysEvaluationRecordMapper.xml @@ -4,4 +4,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleMapper.xml index 65a76a5..baa56ab 100644 --- a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleMapper.xml +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleMapper.xml @@ -1,7 +1,14 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - +