From 3d2dccde51582e3a58d2afe4731ec1ad04229ee4 Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期一, 30 八月 2021 09:25:46 +0800
Subject: [PATCH] 预约登记功能修改

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java |   47 ++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 42 insertions(+), 5 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 1b4d786..b891448 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
@@ -26,6 +26,7 @@
 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 lombok.extern.slf4j.Slf4j;
@@ -68,6 +69,8 @@
     private ComActReserveOperationRecordMapper comActReserveOperationRecordMapper;
     @Resource
     private ComActReserveSubSelectionService comActReserveSubSelectionService;
+    @Resource
+    private ComActReserveRecordService comActReserveRecordService;
 
     private final static String COMMIT="用户已提交";
     @Override
@@ -81,7 +84,7 @@
             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){
+                if(!list.isEmpty()&&list.size()>1&&comActReserveDO.getIsRepeat()==ComActReserveDO.isRepeat.no){
                     return R.fail("提交失败,不可重复预约");
                 }
                 else {
@@ -144,7 +147,7 @@
                                     answerContentDO.setAnswerContent(subSelectionDO.getContent());
                                     answerContentList.add(answerContentDO);
                                 }
-                            }else if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.wenda)){
+                            }else{
                                 //问答题处理
                                 String values = questnaiteSub.getValues();
                                 ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO();
@@ -162,11 +165,11 @@
                             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.setReserveTime(comActReserveCommitVO.getReserveTime());
                             userAnswerDO.setUserId(userId);
                             userAnswerDO.setType(comActReserveCommitVO.getType());
                             userAnswerDO.setCreateAt(nowDate);
@@ -177,7 +180,7 @@
                             else {
                                 userAnswerDO.setStatus(ComActReserveRecordDO.status.cg);
                             }
-                            comActReserveRecordMapper.insert(userAnswerDO);
+                            comActReserveRecordService.saveOrUpdate(userAnswerDO);
 
                             //给答题记录赋值预约登记记录id
                             answerContentList.forEach(answerContent -> {
@@ -189,12 +192,14 @@
                             comActReserveOperationRecordDO.setReserveId(comActReserveCommitVO.getId());
                             comActReserveOperationRecordDO.setReserveRecordId(userAnswerDO.getId());
                             comActReserveOperationRecordDO.setType(ComActReserveOperationRecordDO.type.br);
-                            comActReserveOperationRecordDO.setReserveTime(DateUtil.date());
+                            comActReserveOperationRecordDO.setCreateAt(DateUtil.date());
+                            comActReserveOperationRecordDO.setReserveTime(comActReserveCommitVO.getReserveTime());
                             comActReserveOperationRecordDO.setReserveContent(COMMIT);
                             comActReserveOperationRecordDO.setPhone(comActReserveCommitVO.getPhone());
                             comActReserveOperationRecordDO.setStatus(ComActReserveOperationRecordDO.status.ytj);
                             comActReserveOperationRecordDO.setUserId(comActReserveCommitVO.getUserId());
                             comActReserveOperationRecordMapper.insert(comActReserveOperationRecordDO);
+                        return R.ok("提交成功");
                         }
                     }
                 }
@@ -543,6 +548,38 @@
     }
 
     @Override
+    public R getById(Long id,Long userId,Long recordId) {
+        ComActReserveDO comActReserveDO=comActReserveMapper.selectById(id);
+        if(comActReserveDO!=null){
+            ComActReserveDetailVO comActReserveDetailVO=new ComActReserveDetailVO();
+            BeanUtils.copyProperties(comActReserveDO,comActReserveDetailVO);
+            List<ComActReserveRecordDO> list=comActReserveRecordMapper.selectList(new QueryWrapper<ComActReserveRecordDO>().eq("user_id",userId).eq("reserve_id",id).in("status",1,2).orderByDesc("reserve_time"));
+            List<ComActReserveRecordDO> secondlist=comActReserveRecordMapper.selectList(new QueryWrapper<ComActReserveRecordDO>().eq("user_id",userId).eq("reserve_id",id).orderByDesc("reserve_time"));
+            //判断当前数据是否可重复提交
+            if(comActReserveDO.getIsRepeat()==ComActReserveDetailVO.isOk.y||list.isEmpty()){
+                comActReserveDetailVO.setIsOk(ComActReserveDetailVO.isOk.n);
+            }else {
+                comActReserveDetailVO.setIsOk(ComActReserveDetailVO.isOk.y);
+            }
+            //如果用户已提交返回最新一条记录 列表时间倒序排列
+            if(!list.isEmpty()){
+                comActReserveDetailVO.setJsonObject(list.get(0).getJsonObject());
+                comActReserveDetailVO.setReserveTime(list.get(0).getReserveTime());
+            }
+            if(!secondlist.isEmpty()&&recordId!=null){
+                secondlist.forEach(comActReserveRecordDO -> {
+                    if(comActReserveRecordDO.getId().equals(recordId)){
+                        comActReserveDetailVO.setRecordStatus(comActReserveRecordDO.getStatus());
+                    }
+                });
+            }
+            return R.ok(comActReserveDetailVO);
+        }
+        return R.fail("未查询到数据");
+
+    }
+
+    @Override
     public R pageReserveList(PageUserReserveDTO pageUserReserveDTO) {
         return R.ok(comActReserveRecordMapper.pageReserveList(new Page<ComActReserveDO>(pageUserReserveDTO.getPageNum(), pageUserReserveDTO.getPageSize()),pageUserReserveDTO));
     }

--
Gitblit v1.7.1