mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-21 02:25:56 +08:00
up
This commit is contained in:
parent
90bdf71982
commit
8f00868ac9
@ -88,7 +88,7 @@ public class TitleController extends BaseController {
|
||||
@Log(title = "题目", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TitleBo bo) {
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TitleReq bo) {
|
||||
return toAjax(titleService.updateByBo(bo));
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package org.dromara.question.domain.bo;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
@ -36,5 +37,6 @@ public class TitleReq implements Serializable {
|
||||
@NotNull(message = "题目标签类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long labelId;
|
||||
|
||||
List<OptionVo> optionList;
|
||||
@NotEmpty(message = "选项数据不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private List<OptionVo> optionVoList;
|
||||
}
|
||||
|
||||
@ -41,7 +41,7 @@ public interface ITitleService {
|
||||
/**
|
||||
* 修改题目
|
||||
*/
|
||||
Boolean updateByBo(TitleBo bo);
|
||||
Boolean updateByBo(TitleReq bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除题目信息
|
||||
|
||||
@ -130,10 +130,6 @@ public class TitleServiceImpl implements ITitleService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(TitleReq bo) {
|
||||
List<OptionVo> optionList = bo.getOptionList();
|
||||
if (CollectionUtil.isEmpty(optionList)) {
|
||||
throw new ServiceException("选项不能为空");
|
||||
}
|
||||
TitleBo titleBo = new TitleBo();
|
||||
BeanUtils.copyProperties(bo, titleBo);
|
||||
Title add = MapstructUtils.convert(titleBo, Title.class);
|
||||
@ -146,6 +142,7 @@ public class TitleServiceImpl implements ITitleService {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
|
||||
List<OptionVo> optionList = bo.getOptionVoList();
|
||||
optionList.forEach(option -> option.setQuestionId(bo.getId()));
|
||||
List<Options> options = MapstructUtils.convert(optionList, Options.class);
|
||||
optionMapper.insertBatch(options);
|
||||
@ -156,10 +153,34 @@ public class TitleServiceImpl implements ITitleService {
|
||||
* 修改题目
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(TitleBo bo) {
|
||||
Title update = MapstructUtils.convert(bo, Title.class);
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean updateByBo(TitleReq bo) {
|
||||
TitleBo titleBo = new TitleBo();
|
||||
BeanUtils.copyProperties(bo, titleBo);
|
||||
Title update = MapstructUtils.convert(titleBo, Title.class);
|
||||
if (update == null) {
|
||||
throw new ServiceException("数据获取失败");
|
||||
}
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
|
||||
boolean flag = baseMapper.updateById(update) > 0;
|
||||
if (!flag) {
|
||||
throw new ServiceException("数据保存失败");
|
||||
}
|
||||
// 先查询之前是否绑定过
|
||||
List<OptionVo> optionVos = optionMapper.selectVoList(new LambdaQueryWrapper<Options>()
|
||||
.eq(Options::getQuestionId, bo.getId()));
|
||||
// 删除之前的绑定
|
||||
if (!CollectionUtil.isEmpty(optionVos)) {
|
||||
List<Long> optionIds = optionVos.stream().map(OptionVo::getId).collect(Collectors.toList());
|
||||
optionMapper.deleteBatchIds(optionIds);
|
||||
}
|
||||
// 重新组装数据
|
||||
List<OptionVo> optionList = bo.getOptionVoList();
|
||||
optionList.forEach(option -> option.setQuestionId(bo.getId()));
|
||||
List<Options> options = MapstructUtils.convert(optionList, Options.class);
|
||||
optionMapper.insertBatch(options);
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user