package com.matrix.system.hive.service.imp; import com.matrix.core.pojo.PaginationVO; import com.matrix.system.constance.Dictionary; import com.matrix.system.hive.bean.Answer; import com.matrix.system.hive.bean.Question; import com.matrix.system.hive.dao.AnswerDao; import com.matrix.system.hive.dao.QuestionDao; import com.matrix.system.common.dao.SystemDictionaryDao; import com.matrix.system.hive.service.QuestionSerivce; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; import java.util.List; /** * * @date 2017-03-01 09:42 */ @Service("questionService") public class QuestionServiceImpl implements QuestionSerivce { @Autowired private QuestionDao quesionDao; @Autowired private AnswerDao answerDao; @Autowired private SystemDictionaryDao datadictionaryDao; @Override public int add(Question quesion){ int i =quesionDao.insert(quesion); if(quesion.getAnswers()!=null){ for (Answer answer : quesion.getAnswers()) { if(answer.getAnswer()==null){ continue; } answer.setQuestionId(quesion.getId()); answerDao.insert(answer); } } return i; } @Override public int batchAdd(List quesionList) { return quesionDao.batchInsert(quesionList); } @Override public int modifyByModel(Question quesion){ Question checkQuesion=quesionDao.selectById(quesion.getId()); String ids=","; //如果该问卷类型修改为文本,则不处理答案,避免错误的删除答案数据。 if(!quesion.getType().contains(Dictionary.QUESTION_TYPE_WB)||quesion.getType().equals(Dictionary.QUESTION_TYPE_TITLE)){ for (Answer answer : quesion.getAnswers()) { if(answer.getId()==null){ if(answer.getAnswer()==null){ continue; } answer.setQuestionId(quesion.getId()); answerDao.insert(answer); }else{ //记录更新的answer answerDao.updateByModel(answer); ids+=answer.getId()+","; } } //删除未更新的答案 for (Answer answer : checkQuesion.getAnswers()) { if(!ids.contains(answer.getId().toString())){ answerDao.deleteById(answer.getId()); } } } return quesionDao.updateByModel(quesion); } @Override public int remove(List list){ return quesionDao.deleteByIds(list); } @Override public int removeById(Long id){ return quesionDao.deleteById(id); } @Override public int removeByModel(Question quesion){ return quesionDao.deleteByModel(quesion); } @Override public List findInPage(Question quesion, PaginationVO pageVo){ return quesionDao.selectInPage(quesion , pageVo); } @Override public List findByModel(Question quesion){ return quesionDao.selectByModel(quesion); } @Override public int findTotal(Question quesion){ return quesionDao.selectTotalRecord(quesion); } @Override public Question findById(Long id){ return quesionDao.selectById(id); } @Override public int modify(Question quesion) { Question checkQuesion=quesionDao.selectById(quesion.getId()); String ids=","; //如果该问卷类型修改为文本,则不处理答案,避免错误的删除答案数据。 if(!quesion.getType().contains(Dictionary.QUESTION_TYPE_WB)){ if(quesion.getAnswers()!=null){ for (Answer answer : quesion.getAnswers()) { if(answer.getAnswer()==null){ continue; } if(answer.getId()==null){ answer.setQuestionId(quesion.getId()); answerDao.insert(answer); }else{ //记录更新的answer answerDao.updateByModel(answer); ids+=answer.getId()+","; } } } if(checkQuesion.getAnswers()!=null){ //删除未更新的答案 for (Answer answer : checkQuesion.getAnswers()) { if(!ids.contains(","+answer.getId()+",")){ answerDao.deleteById(answer.getId()); } } } } return quesionDao.updateByModel(quesion); } /** * 根据问卷分类获取所有的问题以及会员的答案。 * @return */ @Override public List findByVipId(Long id,Long companyId) { List vipAnswerList=quesionDao.selectVipAnswerAllByModel(id,companyId,Question.TYPE_ZXDAGL); return vipAnswerList; } }