package com.smartor.service.impl; import java.io.IOException; import java.util.*; import java.util.stream.Collectors; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.smartor.domain.*; import com.smartor.mapper.SvyLibTopicoptionMapper; import lombok.extern.slf4j.Slf4j; import org.apache.catalina.User; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.smartor.mapper.SvyLibTopicMapper; import com.smartor.service.ISvyLibTopicService; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; /** * 问卷题目Service业务层处理 * * @author ruoyi * @date 2023-03-03 */ @Slf4j @Service public class SvyLibTopicServiceImpl implements ISvyLibTopicService { @Autowired private SvyLibTopicMapper svyLibTopicMapper; @Autowired private SvyLibTopicoptionMapper svyLibTopicoptionMapper; /** * 查询问卷题目 * * @param topicid 问卷题目主键 * @return 问卷题目 */ @Override public SvyLibTopic selectSvyLibTopicByTopicid(Long topicid) { return svyLibTopicMapper.selectSvyLibTopicByTopicid(topicid); } /** * 查询问卷题目列表 * * @param svyLibTopic 问卷题目 * @return 问卷题目 */ @Override public List selectSvyLibTopicList(SvyLibTopic svyLibTopic) { //添加题目 List svyLibTopics = svyLibTopicMapper.selectSvyLibTopicList(svyLibTopic); //获取题目选项 for (int j = 0; j < svyLibTopics.size(); j++) { log.info("问题id为:{}", svyLibTopics.get(j).getSvyTopicId()); if (StringUtils.isNotEmpty(svyLibTopics.get(j).getTopictype()) && svyLibTopics.get(j).getTopictype().equals("3") || svyLibTopics.get(j).getTopicid() == null) { //作答题,不需要选项 continue; } else { SvyLibTopicoption svyLibTopicoption = new SvyLibTopicoption(); svyLibTopicoption.setTopicid(svyLibTopics.get(j).getTopicid()); List svyLibTopicoptions = svyLibTopicoptionMapper.selectSvyLibTopicoptionList(svyLibTopicoption); //将查询出的选项目放到题目中 svyLibTopics.get(j).setSvyLibTopicoptions(svyLibTopicoptions); } } return svyLibTopics; } /** * 新增问卷题目 * * @param svyLibTopic 问卷题目 * @return 结果 */ @Override public int insertSvyLibTopic(SvyLibTopic svyLibTopic) { svyLibTopic.setCreateTime(DateUtils.getNowDate()); return svyLibTopicMapper.insertSvyLibTopic(svyLibTopic); } @Transactional(rollbackFor = Exception.class) @Override public Integer saveOrUpdateTopic(SvyLibTopic svyLibTopic) { Integer i = null; //对题目进行处理 if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 1) { //新增 i = svyLibTopicMapper.insertSvyLibTopic(svyLibTopic); } else if (svyLibTopic.getIsoperation() != null && svyLibTopic.getIsoperation() == 2) { //修改 i = svyLibTopicMapper.updateSvyLibTopic(svyLibTopic); } //对题目选项进行处理 if (CollectionUtils.isNotEmpty(svyLibTopic.getSvyLibTopicoptions())) { for (SvyLibTopicoption svyLibTopicoption : svyLibTopic.getSvyLibTopicoptions()) { if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 1) { //新增 svyLibTopicoption.setTopicid(svyLibTopic.getTopicid()); svyLibTopicoption.setCreateTime(new Date()); svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption); } else if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 2) { //修改 svyLibTopicoption.setTopicid(svyLibTopic.getTopicid()); svyLibTopicoption.setUpdateTime(new Date()); svyLibTopicoptionMapper.updateSvyLibTopicoption(svyLibTopicoption); } else if (svyLibTopicoption.getIsoperation() != null && svyLibTopicoption.getIsoperation() == 3) { //删除 svyLibTopicoptionMapper.deleteSvyLibTopicoptionByOptionid(svyLibTopicoption.getOptionid()); } } } return i; } /** * 修改问卷题目 * * @param svyLibTopic 问卷题目 * @return 结果 */ @Override public int updateSvyLibTopic(SvyLibTopic svyLibTopic) { svyLibTopic.setUpdateTime(DateUtils.getNowDate()); return svyLibTopicMapper.updateSvyLibTopic(svyLibTopic); } /** * 批量删除问卷题目 * * @param topicids 需要删除的问卷题目主键 * @return 结果 */ @Override public int deleteSvyLibTopicByTopicids(Long[] topicids) { Integer i = null; for (Long topicid : topicids) { i = svyLibTopicMapper.deleteSvyLibTopicByTopicid(topicid); } return i; } /** * 删除问卷题目信息 * * @param topicid 问卷题目主键 * @return 结果 */ @Override public int deleteSvyLibTopicByTopicid(Long topicid) { return svyLibTopicMapper.deleteSvyLibTopicByTopicid(topicid); } }