mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-20 18:15: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)
|
@Log(title = "题目", businessType = BusinessType.UPDATE)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PutMapping()
|
@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));
|
return toAjax(titleService.updateByBo(bo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package org.dromara.question.domain.bo;
|
package org.dromara.question.domain.bo;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.dromara.common.core.validate.AddGroup;
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
@ -36,5 +37,6 @@ public class TitleReq implements Serializable {
|
|||||||
@NotNull(message = "题目标签类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
@NotNull(message = "题目标签类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
private Long labelId;
|
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
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean insertByBo(TitleReq bo) {
|
public Boolean insertByBo(TitleReq bo) {
|
||||||
List<OptionVo> optionList = bo.getOptionList();
|
|
||||||
if (CollectionUtil.isEmpty(optionList)) {
|
|
||||||
throw new ServiceException("选项不能为空");
|
|
||||||
}
|
|
||||||
TitleBo titleBo = new TitleBo();
|
TitleBo titleBo = new TitleBo();
|
||||||
BeanUtils.copyProperties(bo, titleBo);
|
BeanUtils.copyProperties(bo, titleBo);
|
||||||
Title add = MapstructUtils.convert(titleBo, Title.class);
|
Title add = MapstructUtils.convert(titleBo, Title.class);
|
||||||
@ -146,6 +142,7 @@ public class TitleServiceImpl implements ITitleService {
|
|||||||
bo.setId(add.getId());
|
bo.setId(add.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<OptionVo> optionList = bo.getOptionVoList();
|
||||||
optionList.forEach(option -> option.setQuestionId(bo.getId()));
|
optionList.forEach(option -> option.setQuestionId(bo.getId()));
|
||||||
List<Options> options = MapstructUtils.convert(optionList, Options.class);
|
List<Options> options = MapstructUtils.convert(optionList, Options.class);
|
||||||
optionMapper.insertBatch(options);
|
optionMapper.insertBatch(options);
|
||||||
@ -156,10 +153,34 @@ public class TitleServiceImpl implements ITitleService {
|
|||||||
* 修改题目
|
* 修改题目
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean updateByBo(TitleBo bo) {
|
@Transactional(rollbackFor = Exception.class)
|
||||||
Title update = MapstructUtils.convert(bo, Title.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);
|
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