|
|
@ -27,7 +27,7 @@ import java.util.List; |
|
|
|
@Slf4j |
|
|
|
@Service |
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
|
|
|
public class ModuleService implements IModuleService{ |
|
|
|
public class ModuleService implements IModuleService { |
|
|
|
@Resource |
|
|
|
private ModuleDao moduleDao; |
|
|
|
@Resource |
|
|
@ -56,31 +56,32 @@ public class ModuleService implements IModuleService{ |
|
|
|
public ModuleVo.ModuleInfo getFormModule(ModuleDto.GetFormModule param) { |
|
|
|
//查找组件基本信息
|
|
|
|
ModuleVo.ModuleInfo moduleInfo = moduleDao.getModuleByFormModuleId(param.getFormModuleId()); |
|
|
|
if(ObjectUtil.isNotNull(moduleInfo)){ |
|
|
|
//查找当前组件的配置
|
|
|
|
List<ModuleVo.ModuleConfig> moduleConfigList = moduleDao.getConfigByFormModuleId(param.getFormModuleId()); |
|
|
|
//没有配置信息则查询默认配置
|
|
|
|
if(CollectionUtil.isEmpty(moduleConfigList)){ |
|
|
|
moduleConfigList = moduleDao.getConfigByModuleId(moduleInfo.getId()); |
|
|
|
} |
|
|
|
moduleInfo.setModuleConfigList(moduleConfigList); |
|
|
|
//查找选项信息
|
|
|
|
List<ModuleVo.Option> optionList = getOptionByFormModuleId(param.getFormModuleId(),0L); |
|
|
|
moduleInfo.setOptionList(optionList); |
|
|
|
|
|
|
|
if (ObjectUtil.isNull(moduleInfo)) { |
|
|
|
throw new BaseException(CodeEnum.PARAM_ERROR); |
|
|
|
} |
|
|
|
//查找当前组件的配置
|
|
|
|
List<ModuleVo.ModuleConfig> moduleConfigList = moduleDao.getConfigByFormModuleId(param.getFormModuleId()); |
|
|
|
//没有配置信息则查询默认配置
|
|
|
|
if (CollectionUtil.isEmpty(moduleConfigList)) { |
|
|
|
moduleConfigList = moduleDao.getConfigByModuleId(moduleInfo.getId()); |
|
|
|
} |
|
|
|
moduleInfo.setModuleConfigList(moduleConfigList); |
|
|
|
//查找选项信息
|
|
|
|
List<ModuleVo.Option> optionList = getOptionByFormModuleId(param.getFormModuleId(), 0L); |
|
|
|
moduleInfo.setOptionList(optionList); |
|
|
|
|
|
|
|
return moduleInfo; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 通过表单内的组价id和上级id查看选项信息 |
|
|
|
*/ |
|
|
|
private List<ModuleVo.Option> getOptionByFormModuleId(Long formModuleId,Long parentId){ |
|
|
|
List<ModuleVo.Option> optionList = moduleDao.getOptionByFormModuleId(formModuleId,parentId); |
|
|
|
if(CollectionUtil.isNotEmpty(optionList)){ |
|
|
|
private List<ModuleVo.Option> getOptionByFormModuleId(Long formModuleId, Long parentId) { |
|
|
|
List<ModuleVo.Option> optionList = moduleDao.getOptionByFormModuleId(formModuleId, parentId); |
|
|
|
if (CollectionUtil.isNotEmpty(optionList)) { |
|
|
|
optionList.forEach(option -> { |
|
|
|
List<ModuleVo.Option> subOptionList = getOptionByFormModuleId(formModuleId,option.getId()); |
|
|
|
if(CollectionUtil.isNotEmpty(subOptionList)) { |
|
|
|
List<ModuleVo.Option> subOptionList = getOptionByFormModuleId(formModuleId, option.getId()); |
|
|
|
if (CollectionUtil.isNotEmpty(subOptionList)) { |
|
|
|
option.setSubOption(subOptionList); |
|
|
|
} |
|
|
|
}); |
|
|
@ -93,12 +94,12 @@ public class ModuleService implements IModuleService{ |
|
|
|
* 修改组件的配置和选项 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void updateFormModule(ModuleDto.UpdateFormModule param,Long userId) { |
|
|
|
public void updateFormModule(ModuleDto.UpdateFormModule param, Long userId) { |
|
|
|
//查询以前的配置,删除
|
|
|
|
FormModuleConfigExample moduleConfigExample = new FormModuleConfigExample(); |
|
|
|
moduleConfigExample.createCriteria().andFormModuleIdEqualTo(param.getFormModuleId()); |
|
|
|
List<FormModuleConfig> formModuleConfigList = formModuleConfigMapper.selectByExample(moduleConfigExample); |
|
|
|
if(CollectionUtil.isNotEmpty(formModuleConfigList)){ |
|
|
|
if (CollectionUtil.isNotEmpty(formModuleConfigList)) { |
|
|
|
formModuleConfigList.forEach(formModuleConfig -> { |
|
|
|
formModuleConfig.setRecStatus((byte) 2); |
|
|
|
formModuleConfig.setOperator(userId); |
|
|
@ -109,7 +110,7 @@ public class ModuleService implements IModuleService{ |
|
|
|
FormModuleOptionExample moduleOptionExample = new FormModuleOptionExample(); |
|
|
|
moduleOptionExample.createCriteria().andFormModuleIdEqualTo(param.getFormModuleId()); |
|
|
|
List<FormModuleOption> formModuleOptionList = formModuleOptionMapper.selectByExample(moduleOptionExample); |
|
|
|
if(CollectionUtil.isNotEmpty(formModuleOptionList)){ |
|
|
|
if (CollectionUtil.isNotEmpty(formModuleOptionList)) { |
|
|
|
formModuleOptionList.forEach(formModuleOption -> { |
|
|
|
formModuleOption.setRecStatus((byte) 2); |
|
|
|
formModuleOption.setOperator(userId); |
|
|
@ -117,7 +118,7 @@ public class ModuleService implements IModuleService{ |
|
|
|
}); |
|
|
|
} |
|
|
|
//添加新配置
|
|
|
|
if(CollectionUtil.isNotEmpty(param.getConfigList())){ |
|
|
|
if (CollectionUtil.isNotEmpty(param.getConfigList())) { |
|
|
|
param.getConfigList().forEach(config -> { |
|
|
|
FormModuleConfig formModuleConfig = new FormModuleConfig(); |
|
|
|
formModuleConfig.setId(snowflake.nextId()); |
|
|
@ -130,13 +131,13 @@ public class ModuleService implements IModuleService{ |
|
|
|
}); |
|
|
|
} |
|
|
|
//添加新选项
|
|
|
|
saveOption(param.getOptionList(),param.getFormModuleId(),userId,0L); |
|
|
|
saveOption(param.getOptionList(), param.getFormModuleId(), userId, 0L); |
|
|
|
} |
|
|
|
|
|
|
|
private void saveOption(List<ModuleDto.ModuleOption> moduleOptionList, Long formModuleId, Long userId, Long parentId){ |
|
|
|
if(CollectionUtil.isNotEmpty(moduleOptionList)){ |
|
|
|
private void saveOption(List<ModuleDto.ModuleOption> moduleOptionList, Long formModuleId, Long userId, Long parentId) { |
|
|
|
if (CollectionUtil.isNotEmpty(moduleOptionList)) { |
|
|
|
int sequence = 1; |
|
|
|
for (ModuleDto.ModuleOption moduleOption : moduleOptionList){ |
|
|
|
for (ModuleDto.ModuleOption moduleOption : moduleOptionList) { |
|
|
|
FormModuleOption formModuleOption = new FormModuleOption(); |
|
|
|
formModuleOption.setId(snowflake.nextId()); |
|
|
|
formModuleOption.setFormModuleId(formModuleId); |
|
|
@ -146,8 +147,8 @@ public class ModuleService implements IModuleService{ |
|
|
|
formModuleOption.setOptionKey(moduleOption.getOptionKey()); |
|
|
|
formModuleOption.setOptionValue(moduleOption.getOptionValue()); |
|
|
|
formModuleOptionMapper.insertSelective(formModuleOption); |
|
|
|
if(CollectionUtil.isNotEmpty(moduleOption.getSubOptionList())){ |
|
|
|
saveOption(moduleOption.getSubOptionList(),formModuleId,userId,formModuleOption.getId()); |
|
|
|
if (CollectionUtil.isNotEmpty(moduleOption.getSubOptionList())) { |
|
|
|
saveOption(moduleOption.getSubOptionList(), formModuleId, userId, formModuleOption.getId()); |
|
|
|
} |
|
|
|
sequence++; |
|
|
|
} |
|
|
@ -156,81 +157,102 @@ public class ModuleService implements IModuleService{ |
|
|
|
|
|
|
|
/** |
|
|
|
* 添加组件 |
|
|
|
* @param param 表单id 和组件id |
|
|
|
* |
|
|
|
* @param param 表单id 和组件id |
|
|
|
* @param userId 组件id |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void saveModule(ModuleDto.SaveModule param, Long userId) { |
|
|
|
//查找表单信息
|
|
|
|
FormBasic formBasic = formBasicDao.selectByPrimaryKey(param.getFormId()); |
|
|
|
if(ObjectUtil.isNotNull(formBasic)) { |
|
|
|
//验证是否是创建表单的用户
|
|
|
|
if (!formBasic.getUserId().equals(userId)) { |
|
|
|
throw new BaseException(CodeEnum.NOT_POWER); |
|
|
|
} |
|
|
|
//查找该表单内组件当前的最大排序
|
|
|
|
int sequence = moduleDao.getMaxSequence(param.getFormId()); |
|
|
|
//添加数据
|
|
|
|
FormModule formModule = new FormModule(); |
|
|
|
formModule.setId(snowflake.nextId()); |
|
|
|
formModule.setFormId(param.getFormId()); |
|
|
|
formModule.setModuleId(param.getModuleId()); |
|
|
|
formModule.setSequence(sequence + 1); |
|
|
|
formModule.setOperator(userId); |
|
|
|
formModuleMapper.insertSelective(formModule); |
|
|
|
if (ObjectUtil.isNull(formBasic)) { |
|
|
|
throw new BaseException(CodeEnum.PARAM_ERROR); |
|
|
|
} |
|
|
|
//验证是否是创建表单的用户
|
|
|
|
if (!formBasic.getUserId().equals(userId)) { |
|
|
|
throw new BaseException(CodeEnum.NOT_POWER); |
|
|
|
} |
|
|
|
Module module = moduleDao.selectByPrimaryKey(param.getModuleId()); |
|
|
|
if (ObjectUtil.isNull(module)) { |
|
|
|
throw new BaseException(CodeEnum.PARAM_ERROR); |
|
|
|
} |
|
|
|
//查找该表单内组件当前的最大排序
|
|
|
|
Integer sequence = moduleDao.getMaxSequence(param.getFormId()); |
|
|
|
sequence = sequence == null ? 0 : sequence; |
|
|
|
//添加数据
|
|
|
|
FormModule formModule = new FormModule(); |
|
|
|
formModule.setId(snowflake.nextId()); |
|
|
|
formModule.setFormId(param.getFormId()); |
|
|
|
formModule.setModuleId(param.getModuleId()); |
|
|
|
formModule.setSequence(sequence + 1); |
|
|
|
formModule.setOperator(userId); |
|
|
|
formModuleMapper.insertSelective(formModule); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 同时添加多个组件 |
|
|
|
* @param param 表单id和组件id |
|
|
|
* |
|
|
|
* @param param 表单id和组件id |
|
|
|
* @param userId userId |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void saveMoreModule(ModuleDto.SaveMoreModule param, Long userId) { |
|
|
|
//查找表单信息
|
|
|
|
FormBasic formBasic = formBasicDao.selectByPrimaryKey(param.getFormId()); |
|
|
|
if(ObjectUtil.isNotNull(formBasic)) { |
|
|
|
//验证是否是创建表单的用户
|
|
|
|
if (!formBasic.getUserId().equals(userId)) { |
|
|
|
throw new BaseException(CodeEnum.NOT_POWER); |
|
|
|
} |
|
|
|
if(CollectionUtil.isNotEmpty(param.getModuleIdList())){ |
|
|
|
//查找该表单内组件当前的最大排序
|
|
|
|
int sequence = moduleDao.getMaxSequence(param.getFormId()); |
|
|
|
for(Long moduleId : param.getModuleIdList()){ |
|
|
|
sequence++; |
|
|
|
//添加数据
|
|
|
|
FormModule formModule = new FormModule(); |
|
|
|
formModule.setId(snowflake.nextId()); |
|
|
|
formModule.setFormId(param.getFormId()); |
|
|
|
formModule.setModuleId(moduleId); |
|
|
|
formModule.setSequence(sequence); |
|
|
|
formModule.setOperator(userId); |
|
|
|
formModuleMapper.insertSelective(formModule); |
|
|
|
if (ObjectUtil.isNull(formBasic)) { |
|
|
|
throw new BaseException(CodeEnum.PARAM_ERROR); |
|
|
|
} |
|
|
|
//验证是否是创建表单的用户
|
|
|
|
if (!formBasic.getUserId().equals(userId)) { |
|
|
|
throw new BaseException(CodeEnum.NOT_POWER); |
|
|
|
} |
|
|
|
if (CollectionUtil.isNotEmpty(param.getModuleIdList())) { |
|
|
|
//查找该表单内组件当前的最大排序
|
|
|
|
Integer sequence = moduleDao.getMaxSequence(param.getFormId()); |
|
|
|
sequence = sequence == null ? 0 : sequence; |
|
|
|
for (Long moduleId : param.getModuleIdList()) { |
|
|
|
Module module = moduleDao.selectByPrimaryKey(moduleId); |
|
|
|
if (ObjectUtil.isNull(module)) { |
|
|
|
throw new BaseException(CodeEnum.PARAM_ERROR); |
|
|
|
} |
|
|
|
sequence++; |
|
|
|
//添加数据
|
|
|
|
FormModule formModule = new FormModule(); |
|
|
|
formModule.setId(snowflake.nextId()); |
|
|
|
formModule.setFormId(param.getFormId()); |
|
|
|
formModule.setModuleId(moduleId); |
|
|
|
formModule.setSequence(sequence); |
|
|
|
formModule.setOperator(userId); |
|
|
|
formModuleMapper.insertSelective(formModule); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 删除表单内的组件 |
|
|
|
* @param param 表单内的组件id |
|
|
|
* |
|
|
|
* @param param 表单内的组件id |
|
|
|
* @param userId userId |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void deleteFormModule(ModuleDto.GetFormModule param, Long userId) { |
|
|
|
//查找表单内的组件的信息信息
|
|
|
|
FormModule formModule = formModuleMapper.selectByPrimaryKey(param.getFormModuleId()); |
|
|
|
if(ObjectUtil.isNotNull(formModule)) { |
|
|
|
//查找表单信息
|
|
|
|
FormBasic formBasic = formBasicDao.selectByPrimaryKey(formModule.getFormId()); |
|
|
|
//验证是否是创建表单的用户
|
|
|
|
if (!formBasic.getUserId().equals(userId)) { |
|
|
|
throw new BaseException(CodeEnum.NOT_POWER); |
|
|
|
} |
|
|
|
//删除组件和关联的信息
|
|
|
|
formBasicDao.deleteModule(param.getFormModuleId(),userId); |
|
|
|
if (ObjectUtil.isNull(formModule)) { |
|
|
|
throw new BaseException(CodeEnum.PARAM_ERROR); |
|
|
|
} |
|
|
|
//查找表单信息
|
|
|
|
FormBasic formBasic = formBasicDao.selectByPrimaryKey(formModule.getFormId()); |
|
|
|
if (ObjectUtil.isNull(formBasic)) { |
|
|
|
throw new BaseException(CodeEnum.PARAM_ERROR); |
|
|
|
} |
|
|
|
//验证是否是创建表单的用户
|
|
|
|
if (!formBasic.getUserId().equals(userId)) { |
|
|
|
throw new BaseException(CodeEnum.NOT_POWER); |
|
|
|
} |
|
|
|
//删除组件和关联的信息
|
|
|
|
formBasicDao.deleteModule(param.getFormModuleId(), userId); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|