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<Question> 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<Long> 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<Question> findInPage(Question quesion, PaginationVO pageVo){
|
return quesionDao.selectInPage(quesion , pageVo);
|
}
|
|
@Override
|
public List<Question> 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<Question> findByVipId(Long id,Long companyId) {
|
|
|
|
|
List<Question> vipAnswerList=quesionDao.selectVipAnswerAllByModel(id,companyId,Question.TYPE_ZXDAGL);
|
|
|
return vipAnswerList;
|
}
|
|
|
|
|
}
|