新增发布删除;其他优化
This commit is contained in:
parent
6a39aefb66
commit
d8b0f3a9ee
|
@ -74,8 +74,7 @@ public class ScalePublishController extends BaseController {
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("scale:publish:query")
|
@SaCheckPermission("scale:publish:query")
|
||||||
@GetMapping("/{batchNo}")
|
@GetMapping("/{batchNo}")
|
||||||
public R<SysScalePublishVo> getInfo(@NotNull(message = "主键不能为空")
|
public R<SysScalePublishVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long batchNo) {
|
||||||
@PathVariable Long batchNo) {
|
|
||||||
return R.ok(sysScalePublishService.queryById(batchNo));
|
return R.ok(sysScalePublishService.queryById(batchNo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,5 +113,15 @@ public class ScalePublishController extends BaseController {
|
||||||
return toAjax(sysScalePublishService.end(bo));
|
return toAjax(sysScalePublishService.end(bo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取量表发布详细信息
|
||||||
|
*
|
||||||
|
* @param batchNo 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("scale:publish:delete")
|
||||||
|
@GetMapping("/{batchNo}")
|
||||||
|
public R<Void> delete(@NotNull(message = "主键不能为空") @PathVariable Long batchNo) {
|
||||||
|
return toAjax(sysScalePublishService.deleteById(batchNo));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,6 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
import org.dromara.scale.domain.vo.SysScaleVo;
|
import org.dromara.scale.domain.vo.SysScaleVo;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 心理测评量对象 sys_scale
|
* 心理测评量对象 sys_scale
|
||||||
|
@ -80,12 +79,6 @@ public class SysScale extends BaseEntity {
|
||||||
*/
|
*/
|
||||||
private Long cover;
|
private Long cover;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 测评次数
|
|
||||||
*/
|
|
||||||
private Integer evalNums;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发布次数
|
* 发布次数
|
||||||
*/
|
*/
|
||||||
|
@ -97,11 +90,6 @@ public class SysScale extends BaseEntity {
|
||||||
@AutoMapping(target = "scaleType", expression = "java(cn.hutool.core.util.StrUtil.split(source.getScaleType(), \",\"))")
|
@AutoMapping(target = "scaleType", expression = "java(cn.hutool.core.util.StrUtil.split(source.getScaleType(), \",\"))")
|
||||||
private String scaleType;
|
private String scaleType;
|
||||||
|
|
||||||
/**
|
|
||||||
* 价格/ 单次
|
|
||||||
*/
|
|
||||||
private BigDecimal price;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 维度类型:0:单项单维,1:多项单维型,2:多项多维型
|
* 维度类型:0:单项单维,1:多项单维型,2:多项多维型
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,7 +12,6 @@ import org.dromara.common.core.validate.EditGroup;
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
import org.dromara.scale.domain.SysScale;
|
import org.dromara.scale.domain.SysScale;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -86,11 +85,6 @@ public class SysScaleBo extends BaseEntity {
|
||||||
@NotNull(message = "封面不能为空", groups = {AddGroup.class, EditGroup.class})
|
@NotNull(message = "封面不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||||
private Long cover;
|
private Long cover;
|
||||||
|
|
||||||
/**
|
|
||||||
* 测评次数
|
|
||||||
*/
|
|
||||||
private Integer evalNums;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 量表类型:对应字典项scale_type
|
* 量表类型:对应字典项scale_type
|
||||||
*/
|
*/
|
||||||
|
@ -98,12 +92,6 @@ public class SysScaleBo extends BaseEntity {
|
||||||
@AutoMapping(target = "scaleType", expression = "java(java.lang.String.join(\",\", source.getScaleType()))")
|
@AutoMapping(target = "scaleType", expression = "java(java.lang.String.join(\",\", source.getScaleType()))")
|
||||||
private List<String> scaleType;
|
private List<String> scaleType;
|
||||||
|
|
||||||
/**
|
|
||||||
* 价格/ 单次
|
|
||||||
*/
|
|
||||||
@NotNull(message = "价格/ 单次不能为空", groups = {AddGroup.class, EditGroup.class})
|
|
||||||
private BigDecimal price;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 维度类型:0:单项单维,1:多项单维型,2:多项多维型
|
* 维度类型:0:单项单维,1:多项单维型,2:多项多维型
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -8,7 +8,6 @@ import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
@ -90,11 +89,6 @@ public class SysScaleVo implements Serializable {
|
||||||
*/
|
*/
|
||||||
private String coverUrl;
|
private String coverUrl;
|
||||||
|
|
||||||
/**
|
|
||||||
* 测评次数
|
|
||||||
*/
|
|
||||||
private Integer evalNums;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发布次数
|
* 发布次数
|
||||||
*/
|
*/
|
||||||
|
@ -111,11 +105,6 @@ public class SysScaleVo implements Serializable {
|
||||||
*/
|
*/
|
||||||
private List<String> scaleTypeName;
|
private List<String> scaleTypeName;
|
||||||
|
|
||||||
/**
|
|
||||||
* 价格/ 单次
|
|
||||||
*/
|
|
||||||
private BigDecimal price;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 维度类型:0:单项单维,1:多项单维型,2:多项多维型
|
* 维度类型:0:单项单维,1:多项单维型,2:多项多维型
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -31,4 +31,8 @@ public interface SysEvaluationRecordMapper extends BaseMapperPlus<SysEvaluationR
|
||||||
|
|
||||||
List<WordEvaluationAnswerVo> selectAnswer4Word(Long recordId);
|
List<WordEvaluationAnswerVo> selectAnswer4Word(Long recordId);
|
||||||
|
|
||||||
|
List<SysEvaluationRecordVo> selectUseByBatchNo(Long batchNo);
|
||||||
|
|
||||||
|
int deleteByBatchNo(Long batchNo);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ public interface SysScalePublishMapper extends BaseMapperPlus<SysScalePublish, S
|
||||||
Page<EvaluationVo> selectEvaluationVoList(@Param("page") Page<EvaluationVo> page, @Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId, @Param("deptId") Long deptId);
|
Page<EvaluationVo> selectEvaluationVoList(@Param("page") Page<EvaluationVo> page, @Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId, @Param("deptId") Long deptId);
|
||||||
|
|
||||||
List<String> selectDeptIdsInUse();
|
List<String> selectDeptIdsInUse();
|
||||||
|
List<String> selectUserIdsInUse();
|
||||||
|
|
||||||
List<EvaluationVo> selectUndoneEvaluationVoList(@Param("batchNo") Long batchNo);
|
List<EvaluationVo> selectUndoneEvaluationVoList(@Param("batchNo") Long batchNo);
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,6 @@ import org.dromara.scale.domain.bo.SysScalePublishBo;
|
||||||
import org.dromara.scale.domain.vo.EvaluationVo;
|
import org.dromara.scale.domain.vo.EvaluationVo;
|
||||||
import org.dromara.scale.domain.vo.SysScalePublishVo;
|
import org.dromara.scale.domain.vo.SysScalePublishVo;
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -46,13 +45,14 @@ public interface ISysScalePublishService {
|
||||||
Boolean end(SysScalePublishBo bo);
|
Boolean end(SysScalePublishBo bo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验并批量删除量发布信息
|
* 删除量发布信息
|
||||||
*/
|
*/
|
||||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
Boolean deleteById(Long batchNo);
|
||||||
|
|
||||||
|
|
||||||
TableDataInfo<EvaluationVo> getEvaluationList(BaseQueryBo query, PageQuery pageQuery);
|
TableDataInfo<EvaluationVo> getEvaluationList(BaseQueryBo query, PageQuery pageQuery);
|
||||||
|
|
||||||
List<EvaluationVo> queryUndoneExportList(BaseQueryBo query);
|
List<EvaluationVo> queryUndoneExportList(BaseQueryBo query);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ import org.dromara.scale.domain.SysScalePublish;
|
||||||
import org.dromara.scale.domain.bo.BaseQueryBo;
|
import org.dromara.scale.domain.bo.BaseQueryBo;
|
||||||
import org.dromara.scale.domain.bo.SysScalePublishBo;
|
import org.dromara.scale.domain.bo.SysScalePublishBo;
|
||||||
import org.dromara.scale.domain.vo.EvaluationVo;
|
import org.dromara.scale.domain.vo.EvaluationVo;
|
||||||
|
import org.dromara.scale.domain.vo.SysEvaluationRecordVo;
|
||||||
import org.dromara.scale.domain.vo.SysScalePublishVo;
|
import org.dromara.scale.domain.vo.SysScalePublishVo;
|
||||||
import org.dromara.scale.domain.vo.SysScaleVo;
|
import org.dromara.scale.domain.vo.SysScaleVo;
|
||||||
import org.dromara.scale.mapper.SysEvaluationRecordMapper;
|
import org.dromara.scale.mapper.SysEvaluationRecordMapper;
|
||||||
|
@ -33,7 +34,6 @@ import org.dromara.system.mapper.SysUserMapper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
@ -121,7 +121,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
||||||
if (l <= 1000 * 3600 * 12) {
|
if (l <= 1000 * 3600 * 12) {
|
||||||
throw new ServiceException("截止日期必须在六小时后");
|
throw new ServiceException("截止日期必须在六小时后");
|
||||||
}
|
}
|
||||||
|
//发布次数
|
||||||
List<SysScaleVo> list = scaleMapper.findSysScaleByIds(scaleIds);
|
List<SysScaleVo> list = scaleMapper.findSysScaleByIds(scaleIds);
|
||||||
add.setScaleNames(list.stream().map(SysScaleVo::getScaleName).collect(Collectors.joining(StrUtil.COMMA)));
|
add.setScaleNames(list.stream().map(SysScaleVo::getScaleName).collect(Collectors.joining(StrUtil.COMMA)));
|
||||||
for (String scaleId : bo.getScaleIds()) {
|
for (String scaleId : bo.getScaleIds()) {
|
||||||
|
@ -136,11 +136,13 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
||||||
//冗余名称
|
//冗余名称
|
||||||
List<SysDeptVo> deptList = deptMapper.findDeptByIds(deptIds);
|
List<SysDeptVo> deptList = deptMapper.findDeptByIds(deptIds);
|
||||||
add.setDeptNames(deptList.stream().map(SysDeptVo::getDeptName).collect(Collectors.joining(StrUtil.COMMA)));
|
add.setDeptNames(deptList.stream().map(SysDeptVo::getDeptName).collect(Collectors.joining(StrUtil.COMMA)));
|
||||||
|
//计算用户
|
||||||
userList = userMapper.selectStudentListByDeptIds(deptIds);
|
userList = userMapper.selectStudentListByDeptIds(deptIds);
|
||||||
} else {
|
} else {
|
||||||
if (StringUtils.isEmpty(userIds)) {
|
if (StringUtils.isEmpty(userIds)) {
|
||||||
throw new ServiceException("用户id,以逗号隔开不能为空");
|
throw new ServiceException("用户id,以逗号隔开不能为空");
|
||||||
}
|
}
|
||||||
|
//计算用户
|
||||||
userList = userMapper.findUserByIds(userIds);
|
userList = userMapper.findUserByIds(userIds);
|
||||||
//冗余名称
|
//冗余名称
|
||||||
add.setUserNames(userList.stream().map(SysUser::getNickName).collect(Collectors.joining(StrUtil.COMMA)));
|
add.setUserNames(userList.stream().map(SysUser::getNickName).collect(Collectors.joining(StrUtil.COMMA)));
|
||||||
|
@ -180,7 +182,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
||||||
@Override
|
@Override
|
||||||
public Boolean updateByBo(SysScalePublishBo bo) {
|
public Boolean updateByBo(SysScalePublishBo bo) {
|
||||||
SysScalePublish update = MapstructUtils.convert(bo, SysScalePublish.class);
|
SysScalePublish update = MapstructUtils.convert(bo, SysScalePublish.class);
|
||||||
validEntityBeforeSave(update);
|
//validEntityBeforeSave(update);
|
||||||
return baseMapper.updateById(update) > 0;
|
return baseMapper.updateById(update) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,6 +199,8 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
||||||
*/
|
*/
|
||||||
private void validEntityBeforeSave(SysScalePublish entity) {
|
private void validEntityBeforeSave(SysScalePublish entity) {
|
||||||
//TODO 做一些数据校验,如唯一约束
|
//TODO 做一些数据校验,如唯一约束
|
||||||
|
Integer publishType = entity.getPublishType();
|
||||||
|
if (publishType == 1) {
|
||||||
String deptIds = entity.getDeptIds();
|
String deptIds = entity.getDeptIds();
|
||||||
List<String> deptIdList = StringUtils.splitList(deptIds);
|
List<String> deptIdList = StringUtils.splitList(deptIds);
|
||||||
List<String> publishDeptIdList = baseMapper.selectDeptIdsInUse();
|
List<String> publishDeptIdList = baseMapper.selectDeptIdsInUse();
|
||||||
|
@ -204,7 +208,20 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
||||||
for (String publishDeptIds : publishDeptIdList) {
|
for (String publishDeptIds : publishDeptIdList) {
|
||||||
List<String> useList = StringUtils.splitList(publishDeptIds);
|
List<String> useList = StringUtils.splitList(publishDeptIds);
|
||||||
if (useList.stream().anyMatch(deptIdList::contains)) {
|
if (useList.stream().anyMatch(deptIdList::contains)) {
|
||||||
throw new ServiceException("所选年级下已有发布");
|
throw new ServiceException("所选年级下已有普测发布");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
String userIds = entity.getUserIds();
|
||||||
|
List<String> userIdList = StringUtils.splitList(userIds);
|
||||||
|
List<String> publishUserIdList = baseMapper.selectUserIdsInUse();
|
||||||
|
if (ObjectUtil.isNotEmpty(publishUserIdList)) {
|
||||||
|
for (String publishUserIds : publishUserIdList) {
|
||||||
|
List<String> useList = StringUtils.splitList(publishUserIds);
|
||||||
|
if (useList.stream().anyMatch(userIdList::contains)) {
|
||||||
|
throw new ServiceException("所选用户下已有个测发布");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -214,11 +231,13 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
||||||
* 批量删除量发布
|
* 批量删除量发布
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
public Boolean deleteById(Long batchNo) {
|
||||||
if (isValid) {
|
List<SysEvaluationRecordVo> sysEvaluationRecordVos = recordMapper.selectUseByBatchNo(batchNo);
|
||||||
//TODO 做一些业务上的校验,判断是否需要校验
|
if (ObjectUtil.isNotEmpty(sysEvaluationRecordVos)) {
|
||||||
|
throw new ServiceException("此发布下已有测评,无法删除");
|
||||||
}
|
}
|
||||||
return baseMapper.deleteBatchIds(ids) > 0;
|
recordMapper.deleteByBatchNo(batchNo);
|
||||||
|
return baseMapper.deleteById(batchNo) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
left join sys_scale s on s.scale_id = er.scale_id
|
left join sys_scale s on s.scale_id = er.scale_id
|
||||||
left join sys_oss o on o.oss_id = s.cover
|
left join sys_oss o on o.oss_id = s.cover
|
||||||
where er.user_id = #{userId}
|
where er.user_id = #{userId}
|
||||||
and find_in_set(er.batch_no,#{batchNos})
|
and find_in_set(er.batch_no, #{batchNos})
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectPublishByUseRecord" resultType="org.dromara.scale.domain.vo.SysScalePublishVo">
|
<select id="selectPublishByUseRecord" resultType="org.dromara.scale.domain.vo.SysScalePublishVo">
|
||||||
|
@ -44,4 +44,17 @@
|
||||||
where ea.record_id = #{recordId}
|
where ea.record_id = #{recordId}
|
||||||
order by sf.factor_name
|
order by sf.factor_name
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectUseByBatchNo" resultType="org.dromara.scale.domain.vo.SysEvaluationRecordVo">
|
||||||
|
select *
|
||||||
|
from sys_evaluation_record
|
||||||
|
where batch_no = #{batchNo}
|
||||||
|
and status = 1
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<delete id="deleteByBatchNo">
|
||||||
|
delete
|
||||||
|
from sys_evaluation_record
|
||||||
|
where batch_no = #{batchNo}
|
||||||
|
</delete>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -30,6 +30,12 @@
|
||||||
where status = 1
|
where status = 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectUserIdsInUse" resultType="java.lang.String">
|
||||||
|
select user_ids
|
||||||
|
from sys_scale_publish
|
||||||
|
where status = 1
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="selectUndoneEvaluationVoList" resultType="org.dromara.scale.domain.vo.EvaluationVo">
|
<select id="selectUndoneEvaluationVoList" resultType="org.dromara.scale.domain.vo.EvaluationVo">
|
||||||
select d.dept_id,
|
select d.dept_id,
|
||||||
d.dept_name,
|
d.dept_name,
|
||||||
|
@ -53,7 +59,7 @@
|
||||||
u.nick_name as `createName`
|
u.nick_name as `createName`
|
||||||
from sys_scale_publish sp
|
from sys_scale_publish sp
|
||||||
left join sys_user u on u.user_id = sp.create_by
|
left join sys_user u on u.user_id = sp.create_by
|
||||||
where sp.batch_no= #{batchNo}
|
where sp.batch_no = #{batchNo}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectUseBatchNoByDeptId" resultType="java.lang.String">
|
<select id="selectUseBatchNoByDeptId" resultType="java.lang.String">
|
||||||
|
|
Loading…
Reference in New Issue