From 7731909887d754eafec31e003ddc4fca71e9eb24 Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期四, 26 八月 2021 09:38:28 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/zzj' into zzj --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java | 163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 162 insertions(+), 1 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java index 69e6e72..434c5ce 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java @@ -3,6 +3,11 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; import com.panzhihua.common.model.dtos.community.reserve.*; @@ -14,6 +19,13 @@ import com.panzhihua.service_community.dao.ComActReserveMapper; import com.panzhihua.service_community.dao.ComActReserveSubMapper; import com.panzhihua.service_community.model.dos.*; +import com.panzhihua.common.model.dtos.community.PageUserReserveDTO; +import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.model.vos.community.ComActReserveCommitVO; +import com.panzhihua.common.model.vos.community.questnaire.QuestnaiteSubVO; +import com.panzhihua.service_community.dao.*; +import com.panzhihua.service_community.model.dos.*; +import com.panzhihua.service_community.service.ComActReserveAnswerContentService; import com.panzhihua.service_community.service.ComActReserveService; import com.panzhihua.service_community.service.ComActReserveSubSelectionService; import lombok.extern.slf4j.Slf4j; @@ -27,6 +39,12 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; /** * @auther lyq @@ -36,11 +54,150 @@ @Slf4j @Service public class ComActReserveServiceImpl extends ServiceImpl<ComActReserveMapper, ComActReserveDO> implements ComActReserveService { - + @Resource + private ComActReserveMapper comActReserveMapper; @Resource private ComActReserveSubMapper comActReserveSubMapper; @Resource + private ComActReserveSubSelectionMapper comActReserveSubSelectionMapper; + @Resource + private ComActReserveAnswerContentService comActReserveAnswerContentService; + @Resource + private ComActReserveRecordMapper comActReserveRecordMapper; + @Resource + private ComActReserveOperationRecordMapper comActReserveOperationRecordMapper; + @Resource private ComActReserveSubSelectionService comActReserveSubSelectionService; + + private final static String COMMIT="用户已提交"; + @Override + @Transactional + public R commit(ComActReserveCommitVO comActReserveCommitVO) { + if(comActReserveCommitVO!=null){ + Long userId=comActReserveCommitVO.getUserId(); + Date nowDate=DateUtil.date(); + ComActReserveDO comActReserveDO=comActReserveMapper.selectById(comActReserveCommitVO.getId()); + if(comActReserveDO!=null){ + List<ComActReserveRecordDO> list=comActReserveRecordMapper.selectList(new QueryWrapper<ComActReserveRecordDO>().eq("reserve_id",comActReserveCommitVO.getId()).eq("user_id",comActReserveCommitVO.getUserId()).in("status",1,2,3)); + if(!list.isEmpty()&&comActReserveDO.getIsRepeat()==ComActReserveDO.isRepeat.no){ + return R.fail("提交失败,不可重复预约"); + } + else { + List<QuestnaiteSubVO> questnaiteSubVOS = JSON.parseArray(comActReserveCommitVO.getJsonObject(),QuestnaiteSubVO.class); + if(!questnaiteSubVOS.isEmpty()){ + Long questId=comActReserveCommitVO.getId(); + List<ComActReserveAnswerContentDO> answerContentList=new ArrayList<>(); + for(QuestnaiteSubVO questnaiteSub:questnaiteSubVOS){ + //查询用户填写题目 + ComActReserveSubDO questnaireSubDO = comActReserveSubMapper.selectOne(new QueryWrapper<ComActReserveSubDO>().lambda() + .eq(ComActReserveSubDO::getReserveId,questId).eq(ComActReserveSubDO::getKey,questnaiteSub.getKey())); + if(questnaireSubDO == null){ + log.error("未查询到调查问卷题目,题目名称:" + questnaiteSub.getLabel() + "题目key:" + questnaiteSub.getKey()); + continue; + } + + Long queSubId = questnaireSubDO.getId(); + //根据上传的类型查询不同的题目选项 + if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.danxuan)){ + + //单选题处理 + ComActReserveSubSelectionDO subSelectionDO = comActReserveSubSelectionMapper.selectOne(new QueryWrapper<ComActReserveSubSelectionDO>() + .lambda().eq(ComActReserveSubSelectionDO::getReserveSubId,queSubId).eq(ComActReserveSubSelectionDO::getReserveId,questId) + .eq(ComActReserveSubSelectionDO::getKey,questnaiteSub.getValues())); + if(subSelectionDO == null){ + log.error("未查询到调查问卷选项,题目名称:" + questnaiteSub.getLabel() + "选项key:" + questnaiteSub.getValues()); + continue; + } + + ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO(); + answerContentDO.setUserId(userId); + answerContentDO.setCreateAt(nowDate); + answerContentDO.setCreateBy(userId); + answerContentDO.setReserveSelectionId(subSelectionDO.getId()); + answerContentDO.setReserveSubId(queSubId); + answerContentDO.setType(1); + answerContentDO.setChoice(subSelectionDO.getOptionName()); + answerContentDO.setAnswerContent(subSelectionDO.getContent()); + answerContentList.add(answerContentDO); + }else if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.duoxuan)){ + //多选题处理 + String values = questnaiteSub.getValues(); + String []value = values.split(","); + for (int i = 0; i < value.length; i++) { + ComActReserveSubSelectionDO subSelectionDO = comActReserveSubSelectionMapper.selectOne(new QueryWrapper<ComActReserveSubSelectionDO>() + .lambda().eq(ComActReserveSubSelectionDO::getReserveSubId,queSubId).eq(ComActReserveSubSelectionDO::getReserveId,questId) + .eq(ComActReserveSubSelectionDO::getKey,value[i])); + if(subSelectionDO == null){ + log.error("未查询到调查问卷选项,题目名称:" + questnaiteSub.getLabel() + "选项key:" + questnaiteSub.getValues()); + continue; + } + ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO(); + answerContentDO.setUserId(userId); + answerContentDO.setCreateAt(nowDate); + answerContentDO.setCreateBy(userId); + answerContentDO.setReserveSelectionId(subSelectionDO.getId()); + answerContentDO.setReserveSubId(queSubId); + answerContentDO.setType(1); + answerContentDO.setChoice(subSelectionDO.getOptionName()); + answerContentDO.setAnswerContent(subSelectionDO.getContent()); + answerContentList.add(answerContentDO); + } + }else if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.wenda)){ + //问答题处理 + String values = questnaiteSub.getValues(); + ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO(); + answerContentDO.setUserId(userId); + answerContentDO.setCreateAt(nowDate); + answerContentDO.setCreateBy(userId); + answerContentDO.setReserveSubId(queSubId); + answerContentDO.setType(2); + answerContentDO.setAnswerContent(values); + answerContentList.add(answerContentDO); + } + } + if(!answerContentList.isEmpty()){ + comActReserveAnswerContentService.saveBatch(answerContentList); + + //更新回答用户数量 + Integer joinCount = comActReserveDO.getJoinCount(); + comActReserveDO.setJoinCount(joinCount != null ? joinCount + 1 : 1); + comActReserveMapper.updateById(comActReserveDO); + + //新增用户答题记录 + ComActReserveRecordDO userAnswerDO = new ComActReserveRecordDO(); + userAnswerDO.setPhone(comActReserveCommitVO.getPhone()); + userAnswerDO.setReserveId(questId); + userAnswerDO.setUserId(userId); + userAnswerDO.setType(comActReserveCommitVO.getType()); + userAnswerDO.setCreateAt(nowDate); + userAnswerDO.setJsonObject(comActReserveCommitVO.getJsonObject()); + if(comActReserveCommitVO.getType()==ComActReserveRecordDO.type.yy){ + userAnswerDO.setStatus(ComActReserveRecordDO.status.dcl); + } + else { + userAnswerDO.setStatus(ComActReserveRecordDO.status.cg); + } + comActReserveRecordMapper.insert(userAnswerDO); + //新增用户操作记录 + ComActReserveOperationRecordDO comActReserveOperationRecordDO=new ComActReserveOperationRecordDO(); + comActReserveOperationRecordDO.setReserveId(comActReserveCommitVO.getId()); + comActReserveOperationRecordDO.setReserveRecordId(userAnswerDO.getId()); + comActReserveOperationRecordDO.setType(ComActReserveOperationRecordDO.type.br); + comActReserveOperationRecordDO.setReserveTime(DateUtil.date()); + comActReserveOperationRecordDO.setReserveContent(COMMIT); + comActReserveOperationRecordDO.setPhone(comActReserveCommitVO.getPhone()); + comActReserveOperationRecordDO.setStatus(ComActReserveOperationRecordDO.status.ytj); + comActReserveOperationRecordDO.setUserId(comActReserveCommitVO.getUserId()); + comActReserveOperationRecordMapper.insert(comActReserveOperationRecordDO); + } + } + } + + } + } + return R.fail("参数错误"); + } + /** * 社区后台-分页查询预约登记列表 @@ -379,4 +536,8 @@ return R.ok(this.baseMapper.listReserveAdmin(communityId)); } + @Override + public R pageReserveList(PageUserReserveDTO pageUserReserveDTO) { + return R.ok(comActReserveRecordMapper.pageReserveList(new Page<ComActReserveDO>(pageUserReserveDTO.getPageNum(), pageUserReserveDTO.getPageSize()),pageUserReserveDTO)); + } } -- Gitblit v1.7.1