package com.smartor.service.impl;
|
|
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson.JSONArray;
|
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
import com.smartor.domain.SvyLibScript;
|
import com.smartor.domain.SvyLibScriptOption;
|
import com.smartor.domain.SvyLibScriptTag;
|
import com.smartor.mapper.SvyLibScriptMapper;
|
import com.smartor.mapper.SvyLibScriptOptionMapper;
|
import com.smartor.mapper.SvyLibScriptTagMapper;
|
import com.smartor.service.ISvyLibScriptService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.collections4.CollectionUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.Arrays;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 问卷题目Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2023-03-03
|
*/
|
@Slf4j
|
@Service
|
public class SvyLibScriptServiceImpl implements ISvyLibScriptService {
|
@Autowired
|
private SvyLibScriptMapper svyLibTopicMapper;
|
|
@Autowired
|
private SvyLibScriptOptionMapper svyLibScriptOptionMapper;
|
|
@Autowired
|
private SvyLibScriptTagMapper svyLibScriptTagMapper;
|
|
/**
|
* 查询问卷题目
|
*
|
* @param topicid 问卷题目主键
|
* @return 问卷题目
|
*/
|
@Override
|
public SvyLibScript selectSvyLibScriptByScriptid(Long topicid) {
|
return svyLibTopicMapper.selectSvyLibScriptByScriptid(topicid);
|
}
|
|
/**
|
* 查询问卷题目列表
|
*
|
* @param svyLibTopic 问卷题目
|
* @return 问卷题目
|
*/
|
@Override
|
public List<SvyLibScript> selectSvyLibScriptList(SvyLibScript svyLibTopic) {
|
List<SvyLibScript> svyLibScripts = svyLibTopicMapper.selectSvyLibScriptList(svyLibTopic);
|
//获取题目选项
|
for (int j = 0; j < svyLibScripts.size(); j++) {
|
log.info("问题id为:{}", svyLibScripts.get(j).getId());
|
if (StringUtils.isNotEmpty(svyLibScripts.get(j).getIcd10Name()))
|
svyLibScripts.get(j).setIcd10NameList(JSONArray.parseArray(svyLibScripts.get(j).getIcd10Name(), String.class));
|
|
if (StringUtils.isNotEmpty(svyLibScripts.get(j).getScriptType()) && svyLibScripts.get(j).getScriptType().equals("3") || svyLibScripts.get(j).getId() == null) {
|
//作答题,不需要选项
|
continue;
|
} else {
|
SvyLibScriptOption svyLibTopicoption = new SvyLibScriptOption();
|
svyLibTopicoption.setTopicid(svyLibScripts.get(j).getId());
|
List<SvyLibScriptOption> svyLibTopicoptions = svyLibScriptOptionMapper.selectSvyLibScriptOptionList(svyLibTopicoption);
|
//将查询出的选项目放到题目中
|
svyLibScripts.get(j).setSvyLibScriptOptions(svyLibTopicoptions);
|
}
|
//获取tag
|
SvyLibScriptTag svyLibScriptTag = new SvyLibScriptTag();
|
svyLibScriptTag.setScriptid(svyLibScripts.get(j).getId());
|
List<SvyLibScriptTag> svyLibScriptTags = svyLibScriptTagMapper.selectSvyLibScriptTagList(svyLibScriptTag);
|
svyLibScripts.get(j).setSvyLibScriptTagList(svyLibScriptTags);
|
}
|
return svyLibScripts;
|
}
|
|
/**
|
* 新增问卷题目
|
*
|
* @param svyLibTopic 问卷题目
|
* @return 结果
|
*/
|
@Override
|
public int insertSvyLibScript(SvyLibScript svyLibTopic) {
|
svyLibTopic.setCreateTime(DateUtils.getNowDate());
|
return svyLibTopicMapper.insertSvyLibScript(svyLibTopic);
|
}
|
|
@Transactional(rollbackFor = Exception.class)
|
@Override
|
public Integer saveOrUpdateScript(SvyLibScript svyLibTopic) {
|
Integer i = null;
|
if (CollectionUtils.isNotEmpty(svyLibTopic.getIcd10NameList()) && svyLibTopic.getIcd10NameList().size() > 0) {
|
//将数组转成字符串
|
svyLibTopic.setIcd10Name(JSON.toJSONString(svyLibTopic.getIcd10NameList()));
|
}
|
|
//对题目进行处理
|
if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 1) {
|
//新增
|
i = svyLibTopicMapper.insertSvyLibScript(svyLibTopic);
|
} else if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 2) {
|
//修改
|
i = svyLibTopicMapper.updateSvyLibScript(svyLibTopic);
|
}
|
|
//对题目选项进行处理
|
if (CollectionUtils.isNotEmpty(svyLibTopic.getSvyLibScriptOptions())) {
|
for (SvyLibScriptOption svyLibTopicoption : svyLibTopic.getSvyLibScriptOptions()) {
|
svyLibTopicoption.setGuid(svyLibTopic.getGuid());
|
svyLibTopicoption.setOrgid(svyLibTopic.getOrgid());
|
if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 1) {
|
//新增
|
svyLibTopicoption.setTopicid(svyLibTopic.getId());
|
svyLibTopicoption.setCreateTime(new Date());
|
svyLibScriptOptionMapper.insertSvyLibScriptOption(svyLibTopicoption);
|
} else if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 2) {
|
//修改
|
svyLibTopicoption.setTopicid(svyLibTopic.getId());
|
svyLibTopicoption.setUpdateTime(new Date());
|
svyLibScriptOptionMapper.updateSvyLibScriptOption(svyLibTopicoption);
|
} else if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 3) {
|
//删除
|
svyLibScriptOptionMapper.deleteSvyLibScriptOptionByOptionid(svyLibTopicoption.getId());
|
}
|
}
|
}
|
//标签处理
|
if (CollectionUtils.isNotEmpty(svyLibTopic.getSvyLibScriptTagList())) {
|
for (SvyLibScriptTag svyLibScriptTag : svyLibTopic.getSvyLibScriptTagList()) {
|
svyLibScriptTag.setGuid(svyLibTopic.getGuid());
|
svyLibScriptTag.setOrgid(svyLibTopic.getOrgid());
|
if (svyLibScriptTag.getId() == null) {
|
//新增
|
svyLibScriptTag.setScriptid(svyLibTopic.getId());
|
svyLibScriptTag.setCreateTime(new Date());
|
svyLibScriptTagMapper.insertSvyLibScriptTag(svyLibScriptTag);
|
} else if (svyLibScriptTag.getId() != null) {
|
//修改
|
svyLibScriptTag.setScriptid(svyLibTopic.getId());
|
svyLibScriptTag.setUpdateTime(new Date());
|
svyLibScriptTagMapper.updateSvyLibScriptTag(svyLibScriptTag);
|
}
|
}
|
}
|
return i;
|
}
|
|
/**
|
* 修改问卷题目
|
*
|
* @param svyLibTopic 问卷题目
|
* @return 结果
|
*/
|
@Override
|
public int updateSvyLibScript(SvyLibScript svyLibTopic) {
|
svyLibTopic.setUpdateTime(DateUtils.getNowDate());
|
return svyLibTopicMapper.updateSvyLibScript(svyLibTopic);
|
}
|
|
/**
|
* 批量删除问卷题目
|
*
|
* @param topicids 需要删除的问卷题目主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteSvyLibScriptByScriptids(Long[] topicids) {
|
Integer i = null;
|
for (Long topicid : topicids) {
|
i = svyLibTopicMapper.deleteSvyLibScriptByScriptid(topicid);
|
}
|
return i;
|
}
|
|
/**
|
* 删除问卷题目信息
|
*
|
* @param topicid 问卷题目主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteSvyLibScriptByScriptid(Long topicid) {
|
return svyLibTopicMapper.deleteSvyLibScriptByScriptid(topicid);
|
}
|
|
|
}
|