From 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 09 六月 2025 11:54:00 +0800
Subject: [PATCH] 6.9新增登录失败冻结逻辑

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java |  197 +++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 156 insertions(+), 41 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 ae15670..812e50f 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
@@ -1,20 +1,34 @@
 package com.panzhihua.service_community.service.impl;
 
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.service_community.util.RSAUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
 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.core.metadata.IPage;
 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.OperationDetailDTO;
+import com.panzhihua.common.model.dtos.community.PageUserReserveDTO;
 import com.panzhihua.common.model.dtos.community.reserve.*;
-import com.panzhihua.common.model.helper.AESUtil;
 import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.model.vos.community.ComActReserveIndexVo;
+import com.panzhihua.common.model.vos.community.ComActReserveCommitVO;
 import com.panzhihua.common.model.vos.community.bigscreen.IndexBackReserve;
 import com.panzhihua.common.model.vos.community.bigscreen.IndexReserve;
 import com.panzhihua.common.model.vos.community.questnaire.QuestnaiteSubSelectionVO;
@@ -22,46 +36,15 @@
 import com.panzhihua.common.model.vos.community.reserve.*;
 import com.panzhihua.common.utlis.Snowflake;
 import com.panzhihua.common.utlis.StringUtils;
-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.ComActReserveRecordService;
 import com.panzhihua.service_community.service.ComActReserveService;
 import com.panzhihua.service_community.service.ComActReserveSubSelectionService;
+
+import cn.hutool.core.date.DateUtil;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.Resource;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.Resource;
-import javax.crypto.BadPaddingException;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.NoSuchPaddingException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
 
 /**
  * @auther lyq
@@ -346,6 +329,13 @@
                                 continue;
                             }
                             Long queSubId = questnaireSubDO.getId();
+                            if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.phone)||questnaiteSub.getType().equals(QuestnaiteSubVO.type.name)||questnaiteSub.getType().equals(QuestnaiteSubVO.type.card)){
+                                try {
+                                    questnaiteSub.setValues(RSAUtils.decrypt(questnaiteSub.getValues(),"MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAJJuFUH/4m9H5hCCzxtd9BxpjWlG9gbejqiJpV0XJKaU1V7xDBJasswxPY7Zc15RoxWClPoKPwKrbWKm49dgBJebJq5xd4sLCSbboxRkKxpRiJHMZ4LJjYa5h9Ei9RyfoUzqGHqH4UrDy3m3IwPiP19cIBqoU50shyQf92ZpcGZhAgMBAAECgYEAiadU8pODoUs82x6tZbPALQmJN4PO+wwznfqv6sA74yGdKECAMazz0oMjtGt1SiCCqFD2jcweCftvvELZg3mvNg1V0vRQRD1ZCA8HDp8DXm20d11K3+RX39tR4KgyyM3HsSEhkUDujMxKIpYjyiB5iEtV7Ja9bZ2fROszq+mUIqUCQQDQQf6vWRMLBqfnDcU77vuDGOhXbjkF2ytLxLW3fbKaW3GWvC3n93zPM+mcvWSXgkl448+jFjpMktm1Vn+w+YX3AkEAs/+bbRbod6AcVbLu8C5E44qDRoRpu+LF7Cphp8tlSAIRjm2yGP5acMWGRUtH9MF2QJYPF0PgDzdmUSVqWnCAZwJBALnSuRri4wAKn1SmT+ALfLZcSiyBODZGeppv2ijw6qWahH8YR+ncRaxoyMFHqPMbmM1akJIXqktbGREaLnPOIb8CQQCdJycJaL3Qa98xR4dr9cm5rF6PO96g5w6M8jfO6ztjUkMHymh7f99wpFRlvaN2Y06edyV315ARWPohEPy5N44zAkBlLuDHLm1TkTTAfdlL5r2OcdjpaJYloTdn05Mp3+J+w1zTX8k6Mz8lFZtLUcoMeTfQ9rm/+u2KwxS8NljtSZWH"));
+                                } catch (Exception e) {
+                                    e.printStackTrace();
+                                }
+                            }
                             //根据上传的类型查询不同的题目选项
                             if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.danxuan) || questnaiteSub.getType().equals(QuestnaiteSubVO.type.imgselect)){
                                 //单选题处理
@@ -439,6 +429,131 @@
                             return R.ok("提交成功");
                         }
                     }
+
+
+            }
+        }
+        return R.fail("参数错误");
+    }
+
+    @Override
+    public R homeQuarantineCommitNoToken(ComActReserveCommitVO comActReserveCommitVO) {
+        if(comActReserveCommitVO!=null){
+            ComActReserveDO comActReserveDO=new ComActReserveDO();
+            Date nowDate=DateUtil.date();
+            //查询预约登记记录
+            List<ComActReserveDO> list=comActReserveMapper.selectList(new QueryWrapper<ComActReserveDO>().lambda().eq(ComActReserveDO::getCommunityId,comActReserveCommitVO.getCommunityId()).eq(ComActReserveDO::getTitle,"居家隔离"));
+            if(!list.isEmpty()){
+                comActReserveDO=list.get(0);
+            }
+            comActReserveCommitVO.setId(comActReserveDO.getId());
+            if(comActReserveDO!=null){
+                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) || questnaiteSub.getType().equals(QuestnaiteSubVO.type.imgselect)){
+                            //单选题处理
+                            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.setCreateAt(nowDate);
+                            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.setCreateAt(nowDate);
+                                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.describe)){
+                                //问答题处理
+                                String values = questnaiteSub.getValues();
+                                ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO();
+                                answerContentDO.setCreateAt(nowDate);
+                                answerContentDO.setReserveSubId(queSubId);
+                                answerContentDO.setType(2);
+                                answerContentDO.setAnswerContent(values);
+                                answerContentList.add(answerContentDO);
+                            }
+                        }
+                    }
+                    if(!answerContentList.isEmpty()){
+                        //更新回答用户数量
+                        Integer joinCount = comActReserveDO.getJoinCount();
+                        comActReserveDO.setJoinCount(joinCount != null ? joinCount + 1 : 1);
+                        comActReserveMapper.updateById(comActReserveDO);
+                        //新增用户答题记录
+                        ComActReserveRecordDO userAnswerDO = new ComActReserveRecordDO();
+                        userAnswerDO.setContent(comActReserveCommitVO.getContent()!=null?comActReserveCommitVO.getContent():"");
+                        userAnswerDO.setName(comActReserveCommitVO.getName()!=null?comActReserveCommitVO.getName():"");
+                        userAnswerDO.setCommunityId(comActReserveCommitVO.getCommunityId());
+                        userAnswerDO.setPhone(comActReserveCommitVO.getPhone()!=null?comActReserveCommitVO.getPhone():"");
+                        userAnswerDO.setReserveId(questId);
+                        userAnswerDO.setReserveTime(comActReserveCommitVO.getReserveTime()!=null?comActReserveCommitVO.getReserveTime():new Date());
+                        userAnswerDO.setType(comActReserveCommitVO.getType()!=null? comActReserveCommitVO.getType() : 2);
+                        userAnswerDO.setCreateAt(nowDate);
+                        userAnswerDO.setJsonObject(comActReserveCommitVO.getJsonObject());
+                        userAnswerDO.setStatus(ComActReserveRecordDO.status.cg);
+                        comActReserveRecordService.saveOrUpdate(userAnswerDO);
+
+                        //给答题记录赋值预约登记记录id
+                        answerContentList.forEach(answerContent -> {
+                            answerContent.setReserveRecordId(userAnswerDO.getId());
+                        });
+                        comActReserveAnswerContentService.saveBatch(answerContentList);
+                        //新增用户操作记录
+                        ComActReserveOperationRecordDO comActReserveOperationRecordDO=new ComActReserveOperationRecordDO();
+                        comActReserveOperationRecordDO.setReserveId(comActReserveCommitVO.getId());
+                        comActReserveOperationRecordDO.setReserveRecordId(userAnswerDO.getId());
+                        comActReserveOperationRecordDO.setType(ComActReserveOperationRecordDO.type.br);
+                        comActReserveOperationRecordDO.setCreateAt(DateUtil.date());
+                        comActReserveOperationRecordDO.setReserveTime(comActReserveCommitVO.getReserveTime());
+                        comActReserveOperationRecordDO.setReserveContent(COMMIT);
+                        //comActReserveOperationRecordDO.setPhone(comActReserveCommitVO.getPhone());
+                        comActReserveOperationRecordDO.setStatus(ComActReserveOperationRecordDO.status.ytj);
+                        //comActReserveOperationRecordDO.setRemark(comActReserveCommitVO.getContent());
+                        comActReserveOperationRecordMapper.insert(comActReserveOperationRecordDO);
+                        return R.ok("提交成功");
+                    }
+                }
 
 
             }
@@ -686,7 +801,7 @@
      * @return  预约登记详情
      */
     @Override
-    public R detailReserveAdmin(Long reserveId){
+    public R<ComActReserveDetailAdminVO> detailReserveAdmin(Long reserveId) {
         ComActReserveDetailAdminVO reserveDetailAdminVO = new ComActReserveDetailAdminVO();
         //查询预约登记信息
         ComActReserveDO reserveDO = this.baseMapper.selectById(reserveId);

--
Gitblit v1.7.1