新增个测发布;优化测评端量表获取
This commit is contained in:
parent
022deaf4a3
commit
6a39aefb66
|
@ -11,6 +11,7 @@ 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.SysScalePublishVo;
|
||||
import org.dromara.scale.domain.vo.SysScaleVo;
|
||||
import org.dromara.scale.service.IWebService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
@ -37,7 +38,7 @@ public class WebController extends BaseController {
|
|||
* 查询发布量表
|
||||
*/
|
||||
@GetMapping("/publish")
|
||||
public R<SysScalePublishVo> queryPublish() {
|
||||
public R<List<SysScaleVo>> queryPublish() {
|
||||
return R.ok(webService.queryPublishScale());
|
||||
}
|
||||
|
||||
|
|
|
@ -53,6 +53,16 @@ public class SysScalePublish {
|
|||
@AutoMapping(target = "deptNames", expression = "java(cn.hutool.core.util.StrUtil.split(source.getDeptNames(), \",\"))")
|
||||
private String deptNames;
|
||||
|
||||
@AutoMapping(target = "userIds", expression = "java(cn.hutool.core.util.StrUtil.split(source.getUserIds(), \",\"))")
|
||||
private String userIds;
|
||||
@AutoMapping(target = "userNames", expression = "java(cn.hutool.core.util.StrUtil.split(source.getUserNames(), \",\"))")
|
||||
private String userNames;
|
||||
|
||||
/**
|
||||
* 测评总人数
|
||||
*/
|
||||
private Integer totalNum;
|
||||
|
||||
/**
|
||||
* 截止日期
|
||||
*/
|
||||
|
@ -68,6 +78,11 @@ public class SysScalePublish {
|
|||
*/
|
||||
private Integer allowQueryResult;
|
||||
|
||||
/**
|
||||
* 0个测 1普测
|
||||
*/
|
||||
private Integer publishType;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
|
|
|
@ -35,11 +35,6 @@ public class SysScalePublishBo {
|
|||
@NotEmpty(message = "量表id,以逗号隔开不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
@AutoMapping(target = "scaleIds", expression = "java(java.lang.String.join(\",\", source.getScaleIds()))")
|
||||
private List<String> scaleIds;
|
||||
|
||||
/**
|
||||
* 量表名称 以逗号隔开
|
||||
*/
|
||||
// @NotBlank(message = "量表名称 以逗号隔开不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String scaleNames;
|
||||
|
||||
/**
|
||||
|
@ -48,11 +43,14 @@ public class SysScalePublishBo {
|
|||
@NotBlank(message = "场次名称不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String sessionName;
|
||||
|
||||
@NotEmpty(message = "分组id,以逗号隔开不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@AutoMapping(target = "deptIds", expression = "java(java.lang.String.join(\",\", source.getDeptIds()))")
|
||||
private List<String> deptIds;
|
||||
|
||||
private String deptNames;
|
||||
|
||||
@AutoMapping(target = "userIds", expression = "java(java.lang.String.join(\",\", source.getUserIds()))")
|
||||
private List<String> userIds;
|
||||
private String userNames;
|
||||
|
||||
/**
|
||||
* 截止日期
|
||||
*/
|
||||
|
@ -62,15 +60,17 @@ public class SysScalePublishBo {
|
|||
/**
|
||||
* 状态 0:停用;1:正常
|
||||
*/
|
||||
//@NotNull(message = "状态 0:停用;1:正常不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 0:不允许,1:允许
|
||||
*/
|
||||
@NotNull(message = "0:不允许,1:允许不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotNull(message = "结果展示类型不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Integer allowQueryResult;
|
||||
|
||||
@NotNull(message = "量表类型不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Integer publishType;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package org.dromara.scale.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
|
@ -17,7 +15,6 @@ import java.util.List;
|
|||
* @date 2024-04-07
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class SysScalePublishVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
|
@ -26,45 +23,47 @@ public class SysScalePublishVo implements Serializable {
|
|||
/**
|
||||
*
|
||||
*/
|
||||
@ExcelProperty(value = "")
|
||||
private Long batchNo;
|
||||
|
||||
/**
|
||||
* 量表id,以逗号隔开
|
||||
*/
|
||||
@ExcelProperty(value = "量表id,以逗号隔开")
|
||||
List<String> scaleIds;
|
||||
List<String> scaleNames;
|
||||
|
||||
/**
|
||||
* 场次名称
|
||||
*/
|
||||
@ExcelProperty(value = "场次名称")
|
||||
private String sessionName;
|
||||
|
||||
/**
|
||||
* 分组id,以逗号隔开
|
||||
*/
|
||||
@ExcelProperty(value = "部门分组id")
|
||||
private List<String> deptIds;
|
||||
private List<String> deptNames;
|
||||
|
||||
|
||||
private List<String> userIds;
|
||||
private List<String> userNames;
|
||||
|
||||
/**
|
||||
* 测评总人数
|
||||
*/
|
||||
private Integer totalNum;
|
||||
|
||||
/**
|
||||
* 截止日期
|
||||
*/
|
||||
@ExcelProperty(value = "截止日期")
|
||||
private Date expireTime;
|
||||
|
||||
/**
|
||||
* 状态 0:停用;1:正常
|
||||
*/
|
||||
@ExcelProperty(value = "状态 0:停用;1:正常")
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 0:不允许,1:允许
|
||||
*/
|
||||
@ExcelProperty(value = "0:不允许,1:允许")
|
||||
private Integer allowQueryResult;
|
||||
|
||||
private Long createBy;
|
||||
|
|
|
@ -7,6 +7,7 @@ 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.SysScaleVo;
|
||||
import org.dromara.scale.domain.vo.WordEvaluationAnswerVo;
|
||||
import org.dromara.scale.domain.vo.SysEvaluationRecordVo;
|
||||
import org.dromara.scale.domain.vo.SysScalePublishVo;
|
||||
|
@ -22,7 +23,7 @@ import java.util.List;
|
|||
@Mapper
|
||||
public interface SysEvaluationRecordMapper extends BaseMapperPlus<SysEvaluationRecord, SysEvaluationRecordVo> {
|
||||
|
||||
List<SysEvaluationRecordVo> selectSclaeRecordListByUserAndBatch(@Param("userId") Long userId, @Param("batchNo") Long batchNo);
|
||||
List<SysScaleVo> selectPublishScaleListByUserAndBatch(@Param("userId") Long userId, @Param("batchNos") String batchNos);
|
||||
|
||||
SysScalePublishVo selectPublishByUseRecord(Long recordId);
|
||||
|
||||
|
|
|
@ -23,10 +23,12 @@ public interface SysScalePublishMapper extends BaseMapperPlus<SysScalePublish, S
|
|||
|
||||
List<String> selectDeptIdsInUse();
|
||||
|
||||
SysScalePublish selectUsePublishByDeptId(Long deptId);
|
||||
|
||||
List<EvaluationVo> selectUndoneEvaluationVoList(@Param("batchNo") Long batchNo);
|
||||
|
||||
SysScalePublish selectPublishById(@Param("batchNo") Long batchNo);
|
||||
|
||||
String selectUseBatchNoByDeptId(Long deptId);
|
||||
|
||||
String selectUseBatchNoByUserId(Long userId);
|
||||
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ package org.dromara.scale.service;
|
|||
import com.deepoove.poi.XWPFTemplate;
|
||||
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.BaseQueryBo;
|
||||
import org.dromara.scale.domain.bo.SysEvaluationRecordBo;
|
||||
import org.dromara.scale.domain.vo.SysEvaluationRecordVo;
|
||||
|
@ -35,8 +34,6 @@ public interface ISysEvaluationRecordService {
|
|||
List<SysEvaluationRecordVo> queryList(SysEvaluationRecordBo bo);
|
||||
|
||||
|
||||
void insertBathByPublish(SysScalePublish add);
|
||||
|
||||
XWPFTemplate getWordTemplate(BaseQueryBo bo) throws IOException;
|
||||
|
||||
|
||||
|
|
|
@ -2,14 +2,14 @@ package org.dromara.scale.service;
|
|||
|
||||
import org.dromara.scale.domain.bo.SubmitAnswerBo;
|
||||
import org.dromara.scale.domain.vo.QuestionAnswerVo;
|
||||
import org.dromara.scale.domain.vo.SysScalePublishVo;
|
||||
import org.dromara.scale.domain.vo.SysScaleVo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface IWebService {
|
||||
|
||||
SysScalePublishVo queryPublishScale();
|
||||
List<SysScaleVo> queryPublishScale();
|
||||
|
||||
List<QuestionAnswerVo> queryQuestionAnswerListByScaleId(Long scaleId);
|
||||
|
||||
|
|
|
@ -11,13 +11,10 @@ import com.deepoove.poi.data.Tables;
|
|||
import com.deepoove.poi.data.style.BorderStyle;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.poi.xwpf.usermodel.XWPFTable;
|
||||
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.StatusEnum;
|
||||
import org.dromara.scale.domain.EvaluationEecordWordData;
|
||||
import org.dromara.scale.domain.SysEvaluationRecord;
|
||||
import org.dromara.scale.domain.SysScalePublish;
|
||||
import org.dromara.scale.domain.bo.BaseQueryBo;
|
||||
import org.dromara.scale.domain.bo.SysEvaluationRecordBo;
|
||||
import org.dromara.scale.domain.vo.SysEvaluationRecordVo;
|
||||
|
@ -28,16 +25,13 @@ import org.dromara.scale.mapper.SysEvaluationRecordMapper;
|
|||
import org.dromara.scale.mapper.SysInterveneRecordMapper;
|
||||
import org.dromara.scale.mapper.SysScaleMapper;
|
||||
import org.dromara.scale.service.ISysEvaluationRecordService;
|
||||
import org.dromara.system.domain.SysUser;
|
||||
import org.dromara.system.domain.vo.SysUserVo;
|
||||
import org.dromara.system.mapper.SysUserMapper;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.rmi.ServerException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
@ -97,30 +91,6 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
|
|||
return lqw;
|
||||
}
|
||||
|
||||
@Async
|
||||
@Override
|
||||
public void insertBathByPublish(SysScalePublish add) {
|
||||
String deptIds = add.getDeptIds();
|
||||
Long batchNo = add.getBatchNo();
|
||||
String scaleIds = add.getScaleIds();
|
||||
List<String> scaleList = StringUtils.splitList(scaleIds);
|
||||
List<SysUser> sysUsers = userMapper.selectStudentListByDeptIds(deptIds);
|
||||
|
||||
List<SysEvaluationRecord> recordList = new ArrayList<>();
|
||||
for (String scaleId : scaleList) {
|
||||
for (SysUser user : sysUsers) {
|
||||
SysEvaluationRecord record = new SysEvaluationRecord();
|
||||
record.setUserId(user.getUserId());
|
||||
record.setDeptId(user.getDeptId());
|
||||
record.setBatchNo(batchNo);
|
||||
record.setScaleId(Long.parseLong(scaleId));
|
||||
record.setStatus(StatusEnum.DISABLED.getValue());
|
||||
recordList.add(record);
|
||||
}
|
||||
}
|
||||
baseMapper.insertBatch(recordList, 100);
|
||||
}
|
||||
|
||||
@Override
|
||||
public XWPFTemplate getWordTemplate(BaseQueryBo bo) throws IOException {
|
||||
Long userId = bo.getUserId();
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package org.dromara.scale.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
|
@ -16,20 +15,24 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
|||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.redis.utils.QueueUtils;
|
||||
import org.dromara.scale.constant.StatusEnum;
|
||||
import org.dromara.scale.domain.SysEvaluationRecord;
|
||||
import org.dromara.scale.domain.SysScalePublish;
|
||||
import org.dromara.scale.domain.bo.BaseQueryBo;
|
||||
import org.dromara.scale.domain.bo.SysScalePublishBo;
|
||||
import org.dromara.scale.domain.vo.EvaluationVo;
|
||||
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.ISysEvaluationRecordService;
|
||||
import org.dromara.scale.service.ISysScalePublishService;
|
||||
import org.dromara.system.domain.SysUser;
|
||||
import org.dromara.system.domain.vo.SysDeptVo;
|
||||
import org.dromara.system.mapper.SysDeptMapper;
|
||||
import org.dromara.system.mapper.SysUserMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
@ -52,10 +55,12 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
|||
|
||||
private final SysScaleMapper scaleMapper;
|
||||
|
||||
private final ISysEvaluationRecordService evaluationRecordService;
|
||||
private final SysEvaluationRecordMapper recordMapper;
|
||||
|
||||
private final SysDeptMapper deptMapper;
|
||||
|
||||
private final SysUserMapper userMapper;
|
||||
|
||||
/**
|
||||
* 查询量发布
|
||||
*/
|
||||
|
@ -101,35 +106,74 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
|||
public Boolean insertByBo(SysScalePublishBo bo) {
|
||||
LoginUser loginUser = getLoginUser();
|
||||
SysScalePublish add = MapstructUtils.convert(bo, SysScalePublish.class);
|
||||
add.setStatus(StatusEnum.IN_USE.getValue());
|
||||
add.setCreateBy(loginUser.getUserId());
|
||||
add.setCreateTime(new Date());
|
||||
validEntityBeforeSave(add);
|
||||
Integer publishType = add.getPublishType();
|
||||
Long batchNo = add.getBatchNo();
|
||||
String scaleIds = add.getScaleIds();
|
||||
String deptIds = add.getDeptIds();
|
||||
String userIds = add.getUserIds();
|
||||
//将时间校验移出来,方便后面使用
|
||||
Date expireTime = add.getExpireTime();
|
||||
long l = DateUtils.differentMillisecond(new Date(), expireTime);
|
||||
if (l <= 1000 * 3600 * 12) {
|
||||
throw new ServiceException("截止日期必须在六小时后");
|
||||
}
|
||||
if (CollUtil.isNotEmpty(bo.getScaleIds())) {
|
||||
List<SysScaleVo> list = scaleMapper.findSysScaleByIds(StrUtil.join(StrUtil.COMMA, bo.getScaleIds()));
|
||||
|
||||
List<SysScaleVo> list = scaleMapper.findSysScaleByIds(scaleIds);
|
||||
add.setScaleNames(list.stream().map(SysScaleVo::getScaleName).collect(Collectors.joining(StrUtil.COMMA)));
|
||||
for (String scaleId : bo.getScaleIds()) {
|
||||
scaleMapper.updatePublishNums(Long.parseLong(scaleId));
|
||||
}
|
||||
//处理用户
|
||||
List<SysUser> userList;
|
||||
if (publishType == 1) {
|
||||
if (StringUtils.isEmpty(deptIds)) {
|
||||
throw new ServiceException("分组id,以逗号隔开不能为空");
|
||||
}
|
||||
List<SysDeptVo> deptList = deptMapper.findDeptByIds(StrUtil.join(StrUtil.COMMA, bo.getDeptIds()));
|
||||
//冗余名称
|
||||
List<SysDeptVo> deptList = deptMapper.findDeptByIds(deptIds);
|
||||
add.setDeptNames(deptList.stream().map(SysDeptVo::getDeptName).collect(Collectors.joining(StrUtil.COMMA)));
|
||||
userList = userMapper.selectStudentListByDeptIds(deptIds);
|
||||
} else {
|
||||
if (StringUtils.isEmpty(userIds)) {
|
||||
throw new ServiceException("用户id,以逗号隔开不能为空");
|
||||
}
|
||||
userList = userMapper.findUserByIds(userIds);
|
||||
//冗余名称
|
||||
add.setUserNames(userList.stream().map(SysUser::getNickName).collect(Collectors.joining(StrUtil.COMMA)));
|
||||
}
|
||||
add.setTotalNum(userList.size());
|
||||
//预处理量测记录,方便后续统计与查询
|
||||
List<String> scaleList = bo.getScaleIds();
|
||||
insertRecordBatch(batchNo, scaleList, userList);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setBatchNo(add.getBatchNo());
|
||||
}
|
||||
//加入延迟队列
|
||||
QueueUtils.addDelayedQueueObject("scalePublish-delay-queue", add.getBatchNo(), l, TimeUnit.MILLISECONDS);
|
||||
//预处理量测记录,方便后续统计与查询
|
||||
evaluationRecordService.insertBathByPublish(add);
|
||||
return flag;
|
||||
}
|
||||
|
||||
private void insertRecordBatch(Long batchNo, List<String> scaleList, List<SysUser> userList) {
|
||||
List<SysEvaluationRecord> recordList = new ArrayList<>(scaleList.size() * userList.size());
|
||||
for (String scaleId : scaleList) {
|
||||
for (SysUser user : userList) {
|
||||
SysEvaluationRecord record = new SysEvaluationRecord();
|
||||
record.setUserId(user.getUserId());
|
||||
record.setDeptId(user.getDeptId());
|
||||
record.setBatchNo(batchNo);
|
||||
record.setScaleId(Long.parseLong(scaleId));
|
||||
record.setStatus(StatusEnum.DISABLED.getValue());
|
||||
recordList.add(record);
|
||||
}
|
||||
}
|
||||
recordMapper.insertBatch(recordList, 100);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改量发布
|
||||
*/
|
||||
|
|
|
@ -2,11 +2,13 @@ package org.dromara.scale.service.impl;
|
|||
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.model.LoginUser;
|
||||
import org.dromara.common.core.enums.UserType;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.scale.constant.ScaleDimensionEnum;
|
||||
import org.dromara.scale.constant.ScoreRuleTypeEnum;
|
||||
import org.dromara.scale.constant.SituationEnum;
|
||||
|
@ -20,7 +22,6 @@ import org.dromara.scale.service.ISysScaleAnswerService;
|
|||
import org.dromara.scale.service.ISysScaleFactorService;
|
||||
import org.dromara.scale.service.ISysWarnRecordService;
|
||||
import org.dromara.scale.service.IWebService;
|
||||
import org.dromara.system.domain.SysOss;
|
||||
import org.dromara.system.mapper.SysOssMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
@ -69,7 +70,7 @@ public class WebServiceImpl implements IWebService {
|
|||
|
||||
|
||||
@Override
|
||||
public SysScalePublishVo queryPublishScale() {
|
||||
public List<SysScaleVo> queryPublishScale() {
|
||||
LoginUser loginUser = getLoginUser();
|
||||
Long userId = loginUser.getUserId();
|
||||
Long deptId = loginUser.getDeptId();
|
||||
|
@ -77,27 +78,21 @@ public class WebServiceImpl implements IWebService {
|
|||
if (!UserType.STUDENT.getName().equals(userType)) {
|
||||
throw new ServiceException("只有学生账户才能测评");
|
||||
}
|
||||
SysScalePublish sysScalePublish = publishMapper.selectUsePublishByDeptId(deptId);
|
||||
|
||||
Long batchNo = sysScalePublish.getBatchNo();
|
||||
String scaleIds = sysScalePublish.getScaleIds();
|
||||
//todo
|
||||
List<SysScaleVo> publishScaleVos = scaleMapper.findSysScaleByIds(scaleIds);
|
||||
List<SysEvaluationRecordVo> recordVos = recordMapper.selectSclaeRecordListByUserAndBatch(userId, batchNo);
|
||||
for (SysScaleVo publishScaleVo : publishScaleVos) {
|
||||
SysOss sysOss = ossMapper.selectById(publishScaleVo.getCover());
|
||||
publishScaleVo.setCoverUrl(sysOss.getUrl());
|
||||
//已做过量表
|
||||
for (SysEvaluationRecordVo recordVo : recordVos) {
|
||||
if (publishScaleVo.getScaleId().equals(recordVo.getScaleId())) {
|
||||
publishScaleVo.setRecordId(recordVo.getRecordId());
|
||||
publishScaleVo.setUsed(recordVo.getStatus() == 1);
|
||||
String deptBatchNo = publishMapper.selectUseBatchNoByDeptId(deptId);
|
||||
String userBatchNo = publishMapper.selectUseBatchNoByUserId(userId);
|
||||
List<String> batchList = new ArrayList<>();
|
||||
List<SysScaleVo> scaleVos = new ArrayList<>();
|
||||
if (StringUtils.isNotEmpty(deptBatchNo)) {
|
||||
batchList.add(deptBatchNo);
|
||||
}
|
||||
if (StringUtils.isNotEmpty(userBatchNo)) {
|
||||
batchList.add(userBatchNo);
|
||||
}
|
||||
if (batchList.size() == 0) {
|
||||
return scaleVos;
|
||||
}
|
||||
SysScalePublishVo sysScalePublishVo = MapstructUtils.convert(sysScalePublish, SysScalePublishVo.class);
|
||||
sysScalePublishVo.setScaleList(publishScaleVos);
|
||||
return sysScalePublishVo;
|
||||
scaleVos = recordMapper.selectPublishScaleListByUserAndBatch(userId, StrUtil.join(StrUtil.COMMA, batchList));
|
||||
return scaleVos;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -3,11 +3,19 @@
|
|||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.scale.mapper.SysEvaluationRecordMapper">
|
||||
<select id="selectSclaeRecordListByUserAndBatch" resultType="org.dromara.scale.domain.vo.SysEvaluationRecordVo">
|
||||
select *
|
||||
from sys_evaluation_record
|
||||
where user_id = #{userId}
|
||||
and batch_no = #{batchNo}
|
||||
<select id="selectPublishScaleListByUserAndBatch" resultType="org.dromara.scale.domain.vo.SysScaleVo">
|
||||
select s.scale_id,
|
||||
s.scale_name,
|
||||
s.scale_title,
|
||||
s.cover,
|
||||
s.questions_num,
|
||||
o.url as `coverUrl`,
|
||||
if(er.status = 1, true, false) as `use`
|
||||
from sys_evaluation_record er
|
||||
left join sys_scale s on s.scale_id = er.scale_id
|
||||
left join sys_oss o on o.oss_id = s.cover
|
||||
where er.user_id = #{userId}
|
||||
and find_in_set(er.batch_no,#{batchNos})
|
||||
</select>
|
||||
|
||||
<select id="selectPublishByUseRecord" resultType="org.dromara.scale.domain.vo.SysScalePublishVo">
|
||||
|
|
|
@ -30,13 +30,6 @@
|
|||
where status = 1
|
||||
</select>
|
||||
|
||||
<select id="selectUsePublishByDeptId" resultType="org.dromara.scale.domain.SysScalePublish">
|
||||
select *
|
||||
from sys_scale_publish
|
||||
where status = 1
|
||||
and find_in_set(#{deptId}, dept_ids)
|
||||
</select>
|
||||
|
||||
<select id="selectUndoneEvaluationVoList" resultType="org.dromara.scale.domain.vo.EvaluationVo">
|
||||
select d.dept_id,
|
||||
d.dept_name,
|
||||
|
@ -62,4 +55,18 @@
|
|||
left join sys_user u on u.user_id = sp.create_by
|
||||
where sp.batch_no= #{batchNo}
|
||||
</select>
|
||||
|
||||
<select id="selectUseBatchNoByDeptId" resultType="java.lang.String">
|
||||
select batch_no
|
||||
from sys_scale_publish
|
||||
where status = 1
|
||||
and find_in_set(#{deptId}, dept_ids)
|
||||
</select>
|
||||
|
||||
<select id="selectUseBatchNoByUserId" resultType="java.lang.String">
|
||||
select batch_no
|
||||
from sys_scale_publish
|
||||
where status = 1
|
||||
and find_in_set(#{userId}, user_ids)
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
@ -121,5 +121,6 @@ public interface SysUserMapper extends BaseMapperPlus<SysUser, SysUserVo> {
|
|||
|
||||
int updateInterveneById(@Param(Constants.ENTITY) SysUser user);
|
||||
|
||||
List<SysUser> findUserByIds(String userIds);
|
||||
|
||||
}
|
||||
|
|
|
@ -171,9 +171,9 @@
|
|||
|
||||
<select id="selectStudentListByDeptId" parameterType="Long" resultMap="SysUserResult">
|
||||
<include refid="selectUserVo"/>
|
||||
where u.del_flag = '0'
|
||||
and u.dept_id = #{deptId}
|
||||
where u.dept_id = #{deptId}
|
||||
and user_type = 'student'
|
||||
and u.del_flag = '0'
|
||||
</select>
|
||||
|
||||
<update id="updatePasswordBatchById" parameterType="java.util.List">
|
||||
|
@ -188,10 +188,15 @@
|
|||
from sys_dept d
|
||||
left join sys_user u on u.dept_id = d.dept_id
|
||||
where u.user_type = 'student'
|
||||
and u.del_flag = 0
|
||||
and find_in_set(d.dept_id, #{deptIds})
|
||||
</select>
|
||||
|
||||
<update id="updateInterveneById">
|
||||
update sys_user set intervene_status = #{et.interveneStatus} where user_id = #{et.userId}
|
||||
</update>
|
||||
|
||||
<select id="findUserByIds" resultType="org.dromara.system.domain.SysUser">
|
||||
select * from sys_user where find_in_set(user_id, #{userIds})
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
Loading…
Reference in New Issue