【实训修改背景时,同步修改仿真中实训信息】

This commit is contained in:
weizhihong 2023-01-04 14:33:33 +08:00
parent 3cb7afea89
commit 258b8199e2
3 changed files with 29 additions and 8 deletions

View File

@ -81,9 +81,9 @@ public class TrainingDraftV2Controller {
/** /**
* 重置当前用户的某个实训草稿的内容 * 重置当前用户的某个实训草稿的内容
*/ */
@DeleteMapping("/reset/{trainingId}") @DeleteMapping("{groupId}/reset/{trainingId}")
public void resetTraining(@PathVariable("trainingId") Long trainingId, @RequestAttribute AccountVO user) { public void resetTraining(@PathVariable("groupId") String groupId, @PathVariable("trainingId") Long trainingId, @RequestAttribute AccountVO user) {
this.training2DraftService.resetTraining(trainingId,user.getId()); this.training2DraftService.resetTraining(groupId, trainingId, user.getId());
} }
/** /**

View File

@ -7,6 +7,7 @@ import club.joylink.rtss.entity.training2.DraftTraining2WithBLOBs;
import club.joylink.rtss.exception.BusinessExceptionAssertEnum; import club.joylink.rtss.exception.BusinessExceptionAssertEnum;
import club.joylink.rtss.simulation.cbtc.GroupSimulationService; import club.joylink.rtss.simulation.cbtc.GroupSimulationService;
import club.joylink.rtss.simulation.cbtc.Simulation; import club.joylink.rtss.simulation.cbtc.Simulation;
import club.joylink.rtss.simulation.cbtc.SimulationService;
import club.joylink.rtss.simulation.cbtc.data.storage.StorageSimulation; import club.joylink.rtss.simulation.cbtc.data.storage.StorageSimulation;
import club.joylink.rtss.simulation.cbtc.exception.SimulationException; import club.joylink.rtss.simulation.cbtc.exception.SimulationException;
import club.joylink.rtss.simulation.cbtc.exception.SimulationExceptionType; import club.joylink.rtss.simulation.cbtc.exception.SimulationExceptionType;
@ -46,6 +47,8 @@ public class Training2DraftService {
private DraftTraining2DAO trainingDao; private DraftTraining2DAO trainingDao;
@Autowired @Autowired
private GroupSimulationService groupSimulationService; private GroupSimulationService groupSimulationService;
@Autowired
private SimulationService simulationService;
/** /**
* 根据基本信息创建实训 * 根据基本信息创建实训
@ -136,11 +139,15 @@ public class Training2DraftService {
Simulation simulation = this.groupSimulationService.getSimulationByGroup(simulationId); Simulation simulation = this.groupSimulationService.getSimulationByGroup(simulationId);
StorageSimulation scenesSaving = new StorageSimulation(simulation, true); StorageSimulation scenesSaving = new StorageSimulation(simulation, true);
//保存背景 //保存背景
b.setBgSceneJson((JsonUtils.writeValueAsString(scenesSaving))); String bgSceneJson = JsonUtils.writeValueAsString(scenesSaving);
b.setMemberJson(JsonUtils.writeValueAsString(SimulationMemberVO.convert2VOList(simulation.getSimulationMembers()))); String memberJson = JsonUtils.writeValueAsString(SimulationMemberVO.convert2VOList(simulation.getSimulationMembers()));
b.setBgSceneJson(bgSceneJson);
b.setMemberJson(memberJson);
b.setUpdateTime(LocalDateTime.now()); b.setUpdateTime(LocalDateTime.now());
//
this.trainingDao.updateByExampleSelective(b, example); this.trainingDao.updateByExampleSelective(b, example);
//修改仿真中实训信息
simulation.getTraining2().setBgSceneJson(bgSceneJson);
simulation.getTraining2().setMembersJson(memberJson);
} }
/** /**
@ -157,15 +164,17 @@ public class Training2DraftService {
b.setBgSceneJson(""); b.setBgSceneJson("");
b.setFinalScenesJson(""); b.setFinalScenesJson("");
b.setUpdateTime(LocalDateTime.now()); b.setUpdateTime(LocalDateTime.now());
//
this.trainingDao.updateByExampleSelective(b, example); this.trainingDao.updateByExampleSelective(b, example);
// 重置仿真中背景信息
Simulation simulation = this.groupSimulationService.getSimulationByGroup(req.getGroupId());
simulation.getTraining2().setBgSceneJson(null);
} }
/** /**
* 重置用户实训草稿 * 重置用户实训草稿
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void resetTraining(Long trainingId, Long userId) { public void resetTraining(String groupId, Long trainingId, Long userId) {
DraftTraining2Example example = new DraftTraining2Example(); DraftTraining2Example example = new DraftTraining2Example();
example.createCriteria().andCreatorIdEqualTo(userId).andIdEqualTo(trainingId); example.createCriteria().andCreatorIdEqualTo(userId).andIdEqualTo(trainingId);
List<DraftTraining2> find = this.trainingDao.selectByExample(example); List<DraftTraining2> find = this.trainingDao.selectByExample(example);
@ -185,6 +194,15 @@ public class Training2DraftService {
b.setStepJson(""); b.setStepJson("");
// //
this.trainingDao.updateByExampleSelective(b, example); this.trainingDao.updateByExampleSelective(b, example);
// 重置仿真中背景信息
Simulation simulation = this.groupSimulationService.getSimulationByGroup(groupId);
simulation.getTraining2().setBgSceneJson(null);
simulation.getTraining2().setMapLocationJson(null);
simulation.getTraining2().setSteps(null);
simulation.getTraining2().setMembersJson(null);
simulation.getTraining2().setPlayerIds(null);
simulation.getTraining2().setScoringRules(null);
simulationService.reset(groupId);
} }
/** /**

View File

@ -19,4 +19,7 @@ public class ResetTraining2BackgroudReqVo {
@NotBlank(message = "实训草稿id不能为空") @NotBlank(message = "实训草稿id不能为空")
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long id; private Long id;
@NotBlank(message = "仿真id不能为空")
private String groupId;
} }