package com.panzhihua.service_community.service.impl;
|
|
import java.util.Date;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.google.common.collect.Lists;
|
import com.panzhihua.common.enums.QuestnaireState;
|
import com.panzhihua.common.model.dtos.community.PageQuestnaireDTO;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.common.model.vos.community.questnaire.AddQuestnaireVO;
|
import com.panzhihua.service_community.dao.ComActQuestnaireAnswerContentDAO;
|
import com.panzhihua.service_community.dao.ComActQuestnaireDAO;
|
import com.panzhihua.service_community.dao.ComActQuestnaireSubDAO;
|
import com.panzhihua.service_community.dao.ComActQuestnaireSubSelectionDAO;
|
import com.panzhihua.service_community.model.dos.*;
|
import com.panzhihua.service_community.service.ComActQuestnaireService;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* @Author: llming
|
* @Description:
|
*/
|
@Service
|
public class ComActQuestnaireServiceImpl implements ComActQuestnaireService {
|
@Resource
|
ComActQuestnaireDAO questnaireDAO;
|
@Resource
|
ComActQuestnaireSubDAO questnaireSubDAO;
|
@Resource
|
ComActQuestnaireSubSelectionDAO questnaireSubSelectionDAO;
|
@Resource
|
ComActQuestnaireAnswerContentDAO questnaireAnswerContentDAO;
|
@Resource
|
ComActQuestnaireSubServiceImpl questnaireSubService;
|
@Resource
|
ComActQuestnaireSubSelectionServiceImpl subSelectionService;
|
|
@Override
|
public R AddQuestnaire(AddQuestnaireVO addQuestnaireVO, Long communityId, Long userId) {
|
ComActQuestnaireDO comActQuestnaireDO = new ComActQuestnaireDO();
|
comActQuestnaireDO.setTitle(addQuestnaireVO.getQueTitle());
|
comActQuestnaireDO.setQueDescribe(addQuestnaireVO.getQueDescribe());
|
comActQuestnaireDO.setState(QuestnaireState.CONTINUED.getCode());
|
comActQuestnaireDO.setJoinCount(0);
|
comActQuestnaireDO.setCommunityId(communityId);
|
comActQuestnaireDO.setCreatBy(userId);
|
int questnaireId = questnaireDAO.insert(comActQuestnaireDO);
|
addQuestnaireVO.getQuestnaiteSubVOS().forEach(sub -> {
|
ComActQuestnaireSubDO comActQuestnaireSubDO = new ComActQuestnaireSubDO();
|
comActQuestnaireSubDO.setType(sub.getType());
|
comActQuestnaireSubDO.setContent(sub.getContent());
|
comActQuestnaireSubDO.setSort(sub.getSort());
|
comActQuestnaireSubDO.setQueId((long) questnaireId);
|
comActQuestnaireSubDO.setCreatBy(userId);
|
int subId = questnaireSubDAO.insert(comActQuestnaireSubDO);
|
ArrayList<ComActQuestnaireSubSelectionDO> subSelectionList = Lists.newArrayList();
|
sub.getQuestnaiteSubSelectionVOS().forEach(subSelect -> {
|
ComActQuestnaireSubSelectionDO subSelectionDO = new ComActQuestnaireSubSelectionDO();
|
subSelectionDO.setQueSubId((long) subId);
|
subSelectionDO.setSort(subSelect.getSort());
|
subSelectionDO.setContent(subSelect.getContent());
|
subSelectionDO.setCreatBy(userId);
|
subSelectionList.add(subSelectionDO);
|
});
|
subSelectionService.saveBatch(subSelectionList);
|
});
|
return R.ok();
|
}
|
|
@Override
|
public R ListQuestnaire(PageQuestnaireDTO pageQuestnaireDTO) {
|
Page userPage = new Page(pageQuestnaireDTO.getPageNum(), pageQuestnaireDTO.getPageSize());
|
LambdaQueryWrapper<ComActQuestnaireDO> lambdaQueryWrapper = Wrappers.lambdaQuery();
|
if (pageQuestnaireDTO.getTitle() != null) {
|
lambdaQueryWrapper.like(ComActQuestnaireDO::getTitle, pageQuestnaireDTO.getTitle());
|
}
|
if (pageQuestnaireDTO.getTitle() != null) {
|
lambdaQueryWrapper.eq(ComActQuestnaireDO::getState, pageQuestnaireDTO.getState());
|
}
|
if (pageQuestnaireDTO.getEndTime() != null && pageQuestnaireDTO.getStartTime() != null) {
|
lambdaQueryWrapper.ge(ComActQuestnaireDO::getCreateAt, pageQuestnaireDTO.getStartTime());
|
lambdaQueryWrapper.lt(ComActQuestnaireDO::getCreateAt, pageQuestnaireDTO.getEndTime());
|
}
|
IPage<ComActQuestnaireDO> doPager = questnaireDAO.selectPage(userPage, lambdaQueryWrapper.orderByDesc(ComActQuestnaireDO::getCreateAt));
|
return R.ok(doPager);
|
}
|
|
@Override
|
public R editQuestnaire() {
|
return null;
|
}
|
|
@Override
|
public R deleteQuestnaire() {
|
return null;
|
}
|
|
@Override
|
public R infoQuestnaire() {
|
return null;
|
}
|
|
@Override
|
public R answerInfoQuestnaire() {
|
return null;
|
}
|
}
|