This commit is contained in:
cjw 2024-08-01 09:39:25 +08:00
parent ba8767b725
commit b346396692
7 changed files with 42 additions and 10 deletions

View File

@ -7,9 +7,12 @@ import org.dromara.common.core.validate.AddGroup;
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.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.scale.domain.bo.SubmitAnswerBo;
import org.dromara.scale.domain.vo.QuestionAnswerVo;
import org.dromara.scale.domain.vo.SysEvaluationRecordVo;
import org.dromara.scale.domain.vo.SysScaleVo;
import org.dromara.scale.service.IEvaluationService;
import org.springframework.validation.annotation.Validated;
@ -41,6 +44,7 @@ public class WxEvaluationController extends BaseController {
return R.ok(evaluationService.queryPublishScale());
}
/**
* 查询量表答案选项
*/
@ -50,9 +54,17 @@ public class WxEvaluationController extends BaseController {
}
/**
* 新增量测记录
* 查询量测记录
*/
@Log(title = "新增量测记录", businessType = BusinessType.INSERT)
@GetMapping("/record")
public TableDataInfo<SysEvaluationRecordVo> queryRecord(Integer status, PageQuery pageQuery) {
return evaluationService.queryEvaluationRecord(status, pageQuery);
}
/**
* 量测开始记录
*/
@Log(title = "量测开始记录", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/record/{id}")
public R<Void> addRecord(@NotNull(message = "主键不能为空") @PathVariable Long id) {

View File

@ -54,5 +54,9 @@ public class SysEvaluationRecord extends TenantEntity {
* 记录状态-1初始化0准备测试1完成测试
*/
private Integer status;
/**
* 发布标识0个人1发布
*/
private Integer publishFlag;
}

View File

@ -1,7 +1,10 @@
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.SubmitAnswerBo;
import org.dromara.scale.domain.vo.QuestionAnswerVo;
import org.dromara.scale.domain.vo.SysEvaluationRecordVo;
import org.dromara.scale.domain.vo.SysScaleVo;
import java.util.List;
@ -13,6 +16,8 @@ public interface IEvaluationService {
List<QuestionAnswerVo> queryQuestionAnswerListByScaleId(Long scaleId);
TableDataInfo<SysEvaluationRecordVo> queryEvaluationRecord(Integer status, PageQuery pageQuery);
Boolean newRecord(Long recordId);
Map<String,Object> submitAnswer(SubmitAnswerBo bo);

View File

@ -9,16 +9,18 @@ import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.scale.constant.*;
import org.dromara.scale.domain.*;
import org.dromara.scale.domain.bo.SubmitAnswerBo;
import org.dromara.scale.domain.bo.SysEvaluationAnswerBo;
import org.dromara.scale.domain.vo.*;
import org.dromara.scale.mapper.*;
import org.dromara.scale.service.IEvaluationService;
import org.dromara.scale.service.ISysScaleAnswerService;
import org.dromara.scale.service.ISysScaleFactorService;
import org.dromara.scale.service.ISysWarnRecordService;
import org.dromara.scale.service.IEvaluationService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -96,6 +98,11 @@ public class EvaluationServiceImpl implements IEvaluationService {
return scaleAnswerService.queryQuestionAnswerListByScaleId(scaleId);
}
@Override
public TableDataInfo<SysEvaluationRecordVo> queryEvaluationRecord(Integer status, PageQuery pageQuery) {
return null;
}
@Override
public Boolean newRecord(Long recordId) {
LoginUser loginUser = getLoginUser();

View File

@ -11,12 +11,15 @@ import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.scale.constant.StatusEnum;
import org.dromara.scale.domain.ScoreRecord;
import org.dromara.scale.domain.SysEvaluationRecord;
import org.dromara.scale.domain.SysScale;
import org.dromara.scale.domain.bo.SysScaleBo;
import org.dromara.scale.domain.vo.SysScaleVo;
import org.dromara.scale.mapper.ScoreRecordMapper;
import org.dromara.scale.mapper.SysEvaluationRecordMapper;
import org.dromara.scale.mapper.SysScaleMapper;
import org.dromara.scale.service.ISysScaleService;
import org.springframework.stereotype.Service;
@ -36,13 +39,14 @@ public class SysScaleServiceImpl implements ISysScaleService {
private final SysScaleMapper baseMapper;
private final DictService dictService;
private final ScoreRecordMapper scoreMapper;
private final SysEvaluationRecordMapper recordMapper;
/**
* 查询心理测评量
*/
@Override
public SysScaleVo queryById(Long scaleId) {
Long userId = LoginHelper.getUserId();
SysScaleVo sysScaleVo = baseMapper.selectVoById(scaleId);
String scaleTypeName = dictService.getDictLabel("scale_type", StrUtil.join(StrUtil.COMMA, sysScaleVo.getScaleType()));
sysScaleVo.setScaleTypeName(StrUtil.split(scaleTypeName, StrUtil.COMMA));
@ -59,6 +63,12 @@ public class SysScaleServiceImpl implements ISysScaleService {
} else {
sysScaleVo.setScore(BigDecimal.ZERO);
}
SysEvaluationRecord sysEvaluationRecord = recordMapper.selectOne(new LambdaQueryWrapper<SysEvaluationRecord>()
.eq(SysEvaluationRecord::getUserId, userId)
.eq(SysEvaluationRecord::getScaleId, scaleId)
.eq(SysEvaluationRecord::getPublishFlag, 0)
.lt(SysEvaluationRecord::getStatus, 1));
sysScaleVo.setRecordId(sysEvaluationRecord != null ? sysEvaluationRecord.getRecordId() : null);
return sysScaleVo;
}

View File

@ -21,5 +21,4 @@ public interface SysDictDataMapper extends BaseMapperPlus<SysDictData, SysDictDa
.orderByAsc(SysDictData::getDictSort));
}
List<SysDictDataVo> selectDictDataByTypeAndDictValue(String dictType, String dictValue);
}

View File

@ -4,10 +4,5 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.system.mapper.SysDictDataMapper">
<select id="selectDictDataByTypeAndDictValue" resultType="org.dromara.system.domain.vo.SysDictDataVo">
SELECT *
FROM sys_dict_data t
WHERE t.dict_type=#{dictType} AND FIND_IN_SET(t.dict_value, #{dictValue})
</select>
</mapper>