diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/ScalePublishController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/ScalePublishController.java index b3a9390..1778a70 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/ScalePublishController.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/ScalePublishController.java @@ -74,8 +74,7 @@ public class ScalePublishController extends BaseController { */ @SaCheckPermission("scale:publish:query") @GetMapping("/{batchNo}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long batchNo) { + public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long batchNo) { return R.ok(sysScalePublishService.queryById(batchNo)); } @@ -114,5 +113,15 @@ public class ScalePublishController extends BaseController { return toAjax(sysScalePublishService.end(bo)); } + /** + * 获取量表发布详细信息 + * + * @param batchNo 主键 + */ + @SaCheckPermission("scale:publish:delete") + @GetMapping("/{batchNo}") + public R delete(@NotNull(message = "主键不能为空") @PathVariable Long batchNo) { + return toAjax(sysScalePublishService.deleteById(batchNo)); + } } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScale.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScale.java index 47645db..ddfbd2d 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScale.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScale.java @@ -10,7 +10,6 @@ import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.scale.domain.vo.SysScaleVo; import java.io.Serial; -import java.math.BigDecimal; /** * 心理测评量对象 sys_scale @@ -80,12 +79,6 @@ public class SysScale extends BaseEntity { */ 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(), \",\"))") private String scaleType; - /** - * 价格/ 单次 - */ - private BigDecimal price; - /** * 维度类型:0:单项单维,1:多项单维型,2:多项多维型 */ diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysScaleBo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysScaleBo.java index 875465e..13fb890 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysScaleBo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysScaleBo.java @@ -12,7 +12,6 @@ import org.dromara.common.core.validate.EditGroup; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.scale.domain.SysScale; -import java.math.BigDecimal; import java.util.List; /** @@ -86,11 +85,6 @@ public class SysScaleBo extends BaseEntity { @NotNull(message = "封面不能为空", groups = {AddGroup.class, EditGroup.class}) private Long cover; - /** - * 测评次数 - */ - private Integer evalNums; - /** * 量表类型:对应字典项scale_type */ @@ -98,12 +92,6 @@ public class SysScaleBo extends BaseEntity { @AutoMapping(target = "scaleType", expression = "java(java.lang.String.join(\",\", source.getScaleType()))") private List scaleType; - /** - * 价格/ 单次 - */ - @NotNull(message = "价格/ 单次不能为空", groups = {AddGroup.class, EditGroup.class}) - private BigDecimal price; - /** * 维度类型:0:单项单维,1:多项单维型,2:多项多维型 */ 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 23b20f0..02a1b90 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 @@ -8,7 +8,6 @@ import org.dromara.common.excel.convert.ExcelDictConvert; import java.io.Serial; import java.io.Serializable; -import java.math.BigDecimal; import java.util.List; @@ -90,11 +89,6 @@ public class SysScaleVo implements Serializable { */ private String coverUrl; - /** - * 测评次数 - */ - private Integer evalNums; - /** * 发布次数 */ @@ -111,11 +105,6 @@ public class SysScaleVo implements Serializable { */ private List scaleTypeName; - /** - * 价格/ 单次 - */ - private BigDecimal price; - /** * 维度类型:0:单项单维,1:多项单维型,2:多项多维型 */ 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 e46c865..45b1f65 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 @@ -31,4 +31,8 @@ public interface SysEvaluationRecordMapper extends BaseMapperPlus selectAnswer4Word(Long recordId); + List selectUseByBatchNo(Long batchNo); + + int deleteByBatchNo(Long batchNo); + } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScalePublishMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScalePublishMapper.java index 2dca7b8..67672e8 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScalePublishMapper.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScalePublishMapper.java @@ -22,6 +22,7 @@ public interface SysScalePublishMapper extends BaseMapperPlus selectEvaluationVoList(@Param("page") Page page, @Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId, @Param("deptId") Long deptId); List selectDeptIdsInUse(); + List selectUserIdsInUse(); List selectUndoneEvaluationVoList(@Param("batchNo") Long batchNo); diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysScalePublishService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysScalePublishService.java index 66c6093..ffed2b5 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysScalePublishService.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysScalePublishService.java @@ -7,7 +7,6 @@ import org.dromara.scale.domain.bo.SysScalePublishBo; import org.dromara.scale.domain.vo.EvaluationVo; import org.dromara.scale.domain.vo.SysScalePublishVo; -import java.util.Collection; import java.util.List; /** @@ -46,13 +45,14 @@ public interface ISysScalePublishService { Boolean end(SysScalePublishBo bo); /** - * 校验并批量删除量发布信息 + * 删除量发布信息 */ - Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + Boolean deleteById(Long batchNo); TableDataInfo getEvaluationList(BaseQueryBo query, PageQuery pageQuery); List queryUndoneExportList(BaseQueryBo query); + } 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 0fd325d..d4242b8 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 @@ -20,6 +20,7 @@ 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.SysEvaluationRecordVo; import org.dromara.scale.domain.vo.SysScalePublishVo; import org.dromara.scale.domain.vo.SysScaleVo; import org.dromara.scale.mapper.SysEvaluationRecordMapper; @@ -33,7 +34,6 @@ 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; import java.util.concurrent.TimeUnit; @@ -121,7 +121,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { if (l <= 1000 * 3600 * 12) { throw new ServiceException("截止日期必须在六小时后"); } - + //发布次数 List list = scaleMapper.findSysScaleByIds(scaleIds); add.setScaleNames(list.stream().map(SysScaleVo::getScaleName).collect(Collectors.joining(StrUtil.COMMA))); for (String scaleId : bo.getScaleIds()) { @@ -136,11 +136,13 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { //冗余名称 List 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))); @@ -180,7 +182,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { @Override public Boolean updateByBo(SysScalePublishBo bo) { SysScalePublish update = MapstructUtils.convert(bo, SysScalePublish.class); - validEntityBeforeSave(update); + //validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } @@ -197,14 +199,29 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { */ private void validEntityBeforeSave(SysScalePublish entity) { //TODO 做一些数据校验,如唯一约束 - String deptIds = entity.getDeptIds(); - List deptIdList = StringUtils.splitList(deptIds); - List publishDeptIdList = baseMapper.selectDeptIdsInUse(); - if (ObjectUtil.isNotEmpty(publishDeptIdList)) { - for (String publishDeptIds : publishDeptIdList) { - List useList = StringUtils.splitList(publishDeptIds); - if (useList.stream().anyMatch(deptIdList::contains)) { - throw new ServiceException("所选年级下已有发布"); + Integer publishType = entity.getPublishType(); + if (publishType == 1) { + String deptIds = entity.getDeptIds(); + List deptIdList = StringUtils.splitList(deptIds); + List publishDeptIdList = baseMapper.selectDeptIdsInUse(); + if (ObjectUtil.isNotEmpty(publishDeptIdList)) { + for (String publishDeptIds : publishDeptIdList) { + List useList = StringUtils.splitList(publishDeptIds); + if (useList.stream().anyMatch(deptIdList::contains)) { + throw new ServiceException("所选年级下已有普测发布"); + } + } + } + } else { + String userIds = entity.getUserIds(); + List userIdList = StringUtils.splitList(userIds); + List publishUserIdList = baseMapper.selectUserIdsInUse(); + if (ObjectUtil.isNotEmpty(publishUserIdList)) { + for (String publishUserIds : publishUserIdList) { + List useList = StringUtils.splitList(publishUserIds); + if (useList.stream().anyMatch(userIdList::contains)) { + throw new ServiceException("所选用户下已有个测发布"); + } } } } @@ -214,11 +231,13 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { * 批量删除量发布 */ @Override - public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 + public Boolean deleteById(Long batchNo) { + List sysEvaluationRecordVos = recordMapper.selectUseByBatchNo(batchNo); + if (ObjectUtil.isNotEmpty(sysEvaluationRecordVos)) { + throw new ServiceException("此发布下已有测评,无法删除"); } - return baseMapper.deleteBatchIds(ids) > 0; + recordMapper.deleteByBatchNo(batchNo); + return baseMapper.deleteById(batchNo) > 0; } /** 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 3f1da64..39bb70e 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 @@ -15,7 +15,7 @@ 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}) + and find_in_set(er.batch_no, #{batchNos}) + + + + + delete + from sys_evaluation_record + where batch_no = #{batchNo} + diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScalePublishMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScalePublishMapper.xml index c7e98ce..f456588 100644 --- a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScalePublishMapper.xml +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScalePublishMapper.xml @@ -30,6 +30,12 @@ where status = 1 + +