|
@@ -1,5 +1,12 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
+import com.ym.mec.auth.api.entity.SysUser;
|
|
|
+import com.ym.mec.biz.dal.dao.QuestionnaireQuestionDao;
|
|
|
+import com.ym.mec.biz.dal.dao.QuestionnaireQuestionItemDao;
|
|
|
+import com.ym.mec.biz.dal.entity.QuestionnaireQuestion;
|
|
|
+import com.ym.mec.biz.dal.entity.QuestionnaireQuestionItem;
|
|
|
+import com.ym.mec.biz.dal.entity.SysMusicScoreAccompaniment;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
@@ -7,16 +14,112 @@ import com.ym.mec.biz.dal.entity.QuestionnaireTopic;
|
|
|
import com.ym.mec.biz.service.QuestionnaireTopicService;
|
|
|
import com.ym.mec.biz.dal.dao.QuestionnaireTopicDao;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class QuestionnaireTopicServiceImpl extends BaseServiceImpl<Integer, QuestionnaireTopic> implements QuestionnaireTopicService {
|
|
|
|
|
|
@Autowired
|
|
|
private QuestionnaireTopicDao questionnaireTopicDao;
|
|
|
+ @Autowired
|
|
|
+ private QuestionnaireQuestionDao questionnaireQuestionDao;
|
|
|
+ @Autowired
|
|
|
+ private QuestionnaireQuestionItemDao questionnaireQuestionItemDao;
|
|
|
+ @Autowired
|
|
|
+ private SysUserFeignService sysUserFeignService;
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Integer, QuestionnaireTopic> getDAO() {
|
|
|
return questionnaireTopicDao;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void add(QuestionnaireTopic questionnaireTopic) {
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
+ questionnaireTopic.setCreatorId(sysUser.getId());
|
|
|
+ questionnaireTopicDao.insert(questionnaireTopic);
|
|
|
+ Integer topicId = questionnaireTopic.getId();
|
|
|
+ List<QuestionnaireQuestion> questionnaireQuestionList = questionnaireTopic.getQuestionnaireQuestionList();
|
|
|
+ if(questionnaireQuestionList != null && questionnaireQuestionList.size() > 0){
|
|
|
+ for (QuestionnaireQuestion questionnaireQuestion : questionnaireQuestionList) {
|
|
|
+ questionnaireQuestion.setQuestionnaireTopicId(topicId);
|
|
|
+ questionnaireQuestionDao.insert(questionnaireQuestion);
|
|
|
+ Long questionId = questionnaireQuestion.getId();
|
|
|
+ List<QuestionnaireQuestionItem> questionItemList = questionnaireQuestion.getQuestionnaireQuestionItemList();
|
|
|
+ if(questionItemList != null && questionItemList.size() > 0){
|
|
|
+ questionnaireQuestionItemDao.batchInsert(questionItemList,questionId,topicId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void modify(QuestionnaireTopic questionnaireTopic) {
|
|
|
+ Date date = new Date();
|
|
|
+ questionnaireTopic.setUpdateTime(date);
|
|
|
+ questionnaireTopicDao.update(questionnaireTopic);
|
|
|
+ Integer topicId = questionnaireTopic.getId();
|
|
|
+ List<Long> delQuestionnaireQuestionIdList = questionnaireTopic.getDelQuestionnaireQuestionIdList();
|
|
|
+ if(delQuestionnaireQuestionIdList != null && delQuestionnaireQuestionIdList.size() > 0){
|
|
|
+ questionnaireQuestionDao.batchDel(delQuestionnaireQuestionIdList);
|
|
|
+ questionnaireQuestionItemDao.batchDelByQuestionIdList(delQuestionnaireQuestionIdList);
|
|
|
+ }
|
|
|
+ List<QuestionnaireQuestion> questionnaireQuestionList = questionnaireTopic.getQuestionnaireQuestionList();
|
|
|
+ if(questionnaireQuestionList != null && questionnaireQuestionList.size() > 0){
|
|
|
+ //获取需要修改的问题
|
|
|
+ List<QuestionnaireQuestion> updateCollect = questionnaireQuestionList.stream().filter(e -> e.getId() != null).collect(Collectors.toList());
|
|
|
+ if(updateCollect != null && updateCollect.size() > 0){
|
|
|
+ for (QuestionnaireQuestion question : updateCollect) {
|
|
|
+ //需要删除的问题答案
|
|
|
+ List<Long> delQuestionnaireQuestionItemIdList = question.getDelQuestionnaireQuestionItemIdList();
|
|
|
+ if(delQuestionnaireQuestionItemIdList != null && delQuestionnaireQuestionItemIdList.size() > 0){
|
|
|
+ questionnaireQuestionItemDao.batchDelByQuestionIdList(delQuestionnaireQuestionItemIdList);
|
|
|
+ }
|
|
|
+ questionnaireQuestionDao.update(question);
|
|
|
+ Long questionId = question.getId();
|
|
|
+ List<QuestionnaireQuestionItem> questionItemList = question.getQuestionnaireQuestionItemList();
|
|
|
+ //获取需要修改的答案
|
|
|
+ List<QuestionnaireQuestionItem> updateItemList = questionItemList.stream().filter(e -> e.getId() != null).collect(Collectors.toList());
|
|
|
+ if(updateItemList != null && updateItemList.size() > 0){
|
|
|
+ questionnaireQuestionItemDao.batchUpdate(updateItemList);
|
|
|
+ }
|
|
|
+ //获取删除的答案
|
|
|
+ List<QuestionnaireQuestionItem> insertItemList = questionItemList.stream().filter(e -> e.getId() == null).collect(Collectors.toList());
|
|
|
+ if(insertItemList != null && insertItemList.size() > 0){
|
|
|
+ questionnaireQuestionItemDao.batchInsert(insertItemList,questionId,topicId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取需要新增的问题
|
|
|
+ List<QuestionnaireQuestion> addCollect = questionnaireQuestionList.stream().filter(e -> e.getId() == null).collect(Collectors.toList());
|
|
|
+ if(addCollect.size() > 0){
|
|
|
+ for (QuestionnaireQuestion question : addCollect) {
|
|
|
+ question.setQuestionnaireTopicId(topicId);
|
|
|
+ questionnaireQuestionDao.insert(question);
|
|
|
+ Long questionId = question.getId();
|
|
|
+ List<QuestionnaireQuestionItem> questionItemList = question.getQuestionnaireQuestionItemList();
|
|
|
+ if(questionItemList != null && questionItemList.size() > 0){
|
|
|
+ questionnaireQuestionItemDao.batchInsert(questionItemList,questionId,topicId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public QuestionnaireTopic getDetail(Integer topicId) {
|
|
|
+ QuestionnaireTopic questionnaireTopic = questionnaireTopicDao.get(topicId);
|
|
|
+ Map<String,Object> paramMap = new HashMap(1);
|
|
|
+ paramMap.put("topicId",topicId);
|
|
|
+ questionnaireTopic.setQuestionnaireQuestionList(questionnaireQuestionDao.findAll(paramMap));
|
|
|
+ return questionnaireTopic;
|
|
|
+ }
|
|
|
}
|