From 6fff9ddba2486cbc3ffb6cecf9beac5fcea63cae Mon Sep 17 00:00:00 2001
From: lidongdong <1459917685@qq.com>
Date: 星期三, 20 三月 2024 17:25:08 +0800
Subject: [PATCH] 修改党员双报到 列表积分不显示5
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java | 934 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 895 insertions(+), 39 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 1c17f4f..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,27 +1,50 @@
package com.panzhihua.service_community.service.impl;
-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.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 lombok.extern.slf4j.Slf4j;
-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.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.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.vos.R;
+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;
+import com.panzhihua.common.model.vos.community.questnaire.QuestnaiteSubVO;
+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.*;
+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;
/**
* @auther lyq
@@ -43,23 +66,55 @@
private ComActReserveRecordMapper comActReserveRecordMapper;
@Resource
private ComActReserveOperationRecordMapper comActReserveOperationRecordMapper;
+ @Resource
+ private ComActReserveSubSelectionService comActReserveSubSelectionService;
+ @Resource
+ private ComActReserveRecordService comActReserveRecordService;
+ @Resource
+ private ComMngPopulationDAO comMngPopulationDAO;
+ @Resource
+ private ComMngPopulationHouseDAO comMngPopulationHouseDAO;
+ @Resource
+ private ComMngPopulationCommunityTagsDAO comMngPopulationCommunityTagsDAO;
+ @Resource
+ private ComMngPopulationHouseUserDAO comMngPopulationHouseUserDAO;
+ @Value("${domain.aesKey:}")
+ private String aesKey;
private final static String COMMIT="用户已提交";
@Override
@Transactional
public R commit(ComActReserveCommitVO comActReserveCommitVO) {
if(comActReserveCommitVO!=null){
+ ComMngPopulationHouseDO comMngPopulationHouseDO=new ComMngPopulationHouseDO();
Long userId=comActReserveCommitVO.getUserId();
Date nowDate=DateUtil.date();
+ //查询预约登记记录
ComActReserveDO comActReserveDO=comActReserveMapper.selectById(comActReserveCommitVO.getId());
if(comActReserveDO!=null){
+ //查询当前用户是否已预约并判断是否能继续预约
+ if(comActReserveDO.getJoinAllCount()!=0){
+ Integer count=comActReserveRecordMapper.selectCount(new QueryWrapper<ComActReserveRecordDO>()
+ .eq("reserve_id",comActReserveCommitVO.getId())
+ .eq("status",ComActReserveRecordDO.status.cg));
+ if(count>=comActReserveDO.getJoinAllCount()){
+ return R.fail("预约已上限");
+ }
+ }
+ if(comActReserveCommitVO.getRecordId()!=null){
+ comActReserveRecordMapper.deleteById(comActReserveCommitVO.getRecordId());
+ comActReserveDO.setJoinCount(comActReserveDO.getJoinCount()-1);
+ }
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 {
List<QuestnaiteSubVO> questnaiteSubVOS = JSON.parseArray(comActReserveCommitVO.getJsonObject(),QuestnaiteSubVO.class);
if(!questnaiteSubVOS.isEmpty()){
+ String idCard="";
+ String houseId="";
+ String phone="";
Long questId=comActReserveCommitVO.getId();
List<ComActReserveAnswerContentDO> answerContentList=new ArrayList<>();
for(QuestnaiteSubVO questnaiteSub:questnaiteSubVOS){
@@ -73,7 +128,7 @@
Long queSubId = questnaireSubDO.getId();
//根据上传的类型查询不同的题目选项
- if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.danxuan)){
+ if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.danxuan) || questnaiteSub.getType().equals(QuestnaiteSubVO.type.imgselect)){
//单选题处理
ComActReserveSubSelectionDO subSelectionDO = comActReserveSubSelectionMapper.selectOne(new QueryWrapper<ComActReserveSubSelectionDO>()
@@ -117,31 +172,98 @@
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);
+ }
+ else{
+ //文字描述不做处理
+ if(!questnaiteSub.getType().equals(QuestnaiteSubVO.type.describe)&&!questnaiteSub.getType().equals(QuestnaiteSubVO.type.address)){
+ //问答题处理
+ 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(questnaiteSub.getType().equals(QuestnaiteSubVO.type.card)){
+ idCard=questnaiteSub.getValues();
+ }
+ if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.phone)){
+ phone=questnaiteSub.getValues();
+ }
+ if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.address)){
+ houseId=questnaiteSub.getValues();
+ comMngPopulationHouseDO=comMngPopulationHouseDAO.selectById(houseId);
+ ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO();
+ answerContentDO.setUserId(userId);
+ answerContentDO.setCreateAt(nowDate);
+ answerContentDO.setCreateBy(userId);
+ answerContentDO.setReserveSubId(queSubId);
+ answerContentDO.setType(2);
+ if(comMngPopulationHouseDO!=null){
+ answerContentDO.setAnswerContent(comMngPopulationHouseDO.getAddress());
+ }
+ else {
+ answerContentDO.setAnswerContent("");
+ }
+ answerContentList.add(answerContentDO);
+ }
}
}
if(!answerContentList.isEmpty()){
- comActReserveAnswerContentService.saveBatch(answerContentList);
-
+ //判断实有人口情况
+ if(StringUtils.isNotEmpty(idCard)&&StringUtils.isNotEmpty(houseId)){
+ Integer count=comMngPopulationDAO.selectCount(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getCardNoStr,idCard));
+ if(count==0){
+ ComMngPopulationDO comMngPopulationDO=savePopulation(idCard);
+ if(comMngPopulationHouseDO!=null){
+ comMngPopulationDO.setId(Snowflake.getId());
+ comMngPopulationDO.setAddress(comMngPopulationHouseDO.getAddress());
+ comMngPopulationDO.setActId(comMngPopulationHouseDO.getCommunityId());
+ comMngPopulationDO.setStreetId(comMngPopulationHouseDO.getStreetId());
+ comMngPopulationDO.setVillageId(comMngPopulationHouseDO.getVillageId());
+ comMngPopulationDO.setHouseId(comMngPopulationHouseDO.getId());
+ comMngPopulationDO.setOutOrLocal(1);
+ comMngPopulationDO.setPhone(phone);
+ comMngPopulationDO.setName(comActReserveCommitVO.getName());
+ comMngPopulationDO.setRoad(comMngPopulationHouseDO.getAlley());
+ comMngPopulationDO.setDoorNo(comMngPopulationHouseDO.getHouseNum());
+ comMngPopulationDO.setFloor(comMngPopulationHouseDO.getFloor());
+ comMngPopulationDO.setUnitNo(comMngPopulationHouseDO.getUnitNo());
+ comMngPopulationDO.setHouseNo(comMngPopulationHouseDO.getHouseNo());
+ comMngPopulationDAO.insert(comMngPopulationDO);
+ ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO=new ComMngPopulationCommunityTagsDO();
+ comMngPopulationCommunityTagsDO.setCommunityId(comMngPopulationDO.getActId());
+ comMngPopulationCommunityTagsDO.setPopulationId(comMngPopulationDO.getId());
+ comMngPopulationCommunityTagsDO.setId(Snowflake.getId());
+ comMngPopulationCommunityTagsDO.setCreateAt(new Date());
+ comMngPopulationCommunityTagsDAO.insert(comMngPopulationCommunityTagsDO);
+ ComMngPopulationHouseUserDO comMngPopulationHouseUserDO=new ComMngPopulationHouseUserDO();
+ comMngPopulationHouseUserDO.setId(Snowflake.getId());
+ comMngPopulationHouseUserDO.setPopulId(comMngPopulationDO.getId());
+ comMngPopulationHouseUserDO.setHouseId(Long.parseLong(houseId));
+ comMngPopulationHouseUserDO.setRelation(1);
+ comMngPopulationHouseUserDO.setRelationId(1);
+ comMngPopulationHouseUserDO.setResidence(1);
+ comMngPopulationHouseUserDO.setCreateAt(new Date());
+ comMngPopulationHouseUserDAO.insert(comMngPopulationHouseUserDO);
+ }
+ }
+ }
//更新回答用户数量
Integer joinCount = comActReserveDO.getJoinCount();
comActReserveDO.setJoinCount(joinCount != null ? joinCount + 1 : 1);
comActReserveMapper.updateById(comActReserveDO);
-
//新增用户答题记录
ComActReserveRecordDO userAnswerDO = new ComActReserveRecordDO();
+ userAnswerDO.setContent(comActReserveCommitVO.getContent());
+ userAnswerDO.setName(comActReserveCommitVO.getName());
+ userAnswerDO.setCommunityId(comActReserveCommitVO.getCommunityId());
userAnswerDO.setPhone(comActReserveCommitVO.getPhone());
userAnswerDO.setReserveId(questId);
+ userAnswerDO.setReserveTime(comActReserveCommitVO.getReserveTime());
userAnswerDO.setUserId(userId);
userAnswerDO.setType(comActReserveCommitVO.getType());
userAnswerDO.setCreateAt(nowDate);
@@ -152,30 +274,764 @@
else {
userAnswerDO.setStatus(ComActReserveRecordDO.status.cg);
}
- comActReserveRecordMapper.insert(userAnswerDO);
+ 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.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());
+ comActReserveOperationRecordDO.setRemark(comActReserveCommitVO.getContent());
comActReserveOperationRecordMapper.insert(comActReserveOperationRecordDO);
+ return R.ok("提交成功");
}
}
}
}
-
}
return R.fail("参数错误");
}
@Override
+ public R commitNoToken(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.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)){
+ //单选题处理
+ 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("提交成功");
+ }
+ }
+
+
+ }
+ }
+ 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("提交成功");
+ }
+ }
+
+
+ }
+ }
+ return R.fail("参数错误");
+ }
+
+
+ /**
+ * 社区后台-分页查询预约登记列表
+ * @param pageReserveDTO 请求参数
+ * @return 预约登记列表
+ */
+ @Override
+ public R pageReserveAdmin(PageReserveAdminDTO pageReserveDTO){
+ IPage<ComActReserveListAdminVO> reservePage = this.baseMapper.pageReserveAdmin(new Page(pageReserveDTO.getPageNum(),pageReserveDTO.getPageSize()),pageReserveDTO);
+ reservePage.getRecords().forEach(reserve -> {
+ //判断广告位置
+ StringBuilder sb = new StringBuilder();
+ if(reserve.getAdverPositionTop().equals(ComActQuestnaireDO.isOk.yes)){
+ sb.append("首页顶部,");
+ }
+ if(reserve.getAdverPositionApplication().equals(ComActQuestnaireDO.isOk.yes)){
+ sb.append("首页应用,");
+ }
+ String advertPosition = sb.toString();
+ if(advertPosition.length() > 0){
+ reserve.setAdvertPosition(advertPosition.substring(0,advertPosition.length()-1));
+ }else{
+ reserve.setAdvertPosition("无");
+ }
+ });
+ return R.ok(reservePage);
+ }
+
+ /**
+ * 社区后台-新增预约登记信息
+ * @param addReserveDTO 请求参数
+ * @return 新增结果
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R addReserveAdmin(AddReserveAdminDTO addReserveDTO){
+ Date nowDate = new Date();
+ Long userId = addReserveDTO.getUserId();
+ //新增预约登记信息
+ ComActReserveDO reserveDO = new ComActReserveDO();
+ BeanUtils.copyProperties(addReserveDTO,reserveDO);
+ reserveDO.setStatus(ComActReserveDO.status.dfb);
+ reserveDO.setCreateAt(nowDate);
+ reserveDO.setCreateBy(userId);
+
+ if(addReserveDTO.getIsPublish().equals(ComActReserveDO.isOk.yes)){
+ reserveDO.setStatus(ComActReserveDO.status.jxz);
+ reserveDO.setPublishTime(nowDate);
+ }
+ this.baseMapper.insert(reserveDO);
+
+ //根据上传的json数据录入选项以及题目到数据库
+ if(StringUtils.isEmpty(addReserveDTO.getJsonObject())){
+ return R.fail("组件json数据为空,录入失败");
+ }
+ List<QuestnaiteSubVO> reserveSubVOS = JSON.parseArray(addReserveDTO.getJsonObject(),QuestnaiteSubVO.class);
+ reserveSubVOS.forEach(reserveSub -> {
+ ComActReserveSubDO comActReserveSubDO = new ComActReserveSubDO();
+ comActReserveSubDO.setType(reserveSub.getType());
+ comActReserveSubDO.setContent(reserveSub.getLabel());
+ comActReserveSubDO.setSort(reserveSub.getSort());
+ comActReserveSubDO.setReserveId(reserveDO.getId());
+ comActReserveSubDO.setCreateBy(userId);
+ comActReserveSubDO.setCreateAt(nowDate);
+ comActReserveSubDO.setKey(reserveSub.getKey());
+ comActReserveSubMapper.insert(comActReserveSubDO);
+
+ ArrayList<ComActReserveSubSelectionDO> subSelectionList = Lists.newArrayList();
+ if(reserveSub.getOptions() != null && !reserveSub.getOptions().isEmpty()) {
+ List<QuestnaiteSubSelectionVO> subOptions = reserveSub.getOptions();
+ for(int i=0; i<subOptions.size(); i++){
+ QuestnaiteSubSelectionVO subSelect = subOptions.get(i);
+ ComActReserveSubSelectionDO subSelectionDO = new ComActReserveSubSelectionDO();
+ subSelectionDO.setReserveSubId(comActReserveSubDO.getId());
+ if(subSelect.getType().equals(1)){
+ //添加选项名称
+ subSelectionDO.setOptionName(subSelect.getOptionName());
+ }else {
+ subSelectionDO.setOptionName(String.valueOf(Character.toChars('A' + i)));
+ }
+ subSelectionDO.setContent(subSelect.getLabel());
+ subSelectionDO.setReserveId(reserveDO.getId());
+ subSelectionDO.setCreateBy(userId);
+ subSelectionDO.setCreateAt(nowDate);
+ subSelectionDO.setType(subSelect.getType());
+ subSelectionDO.setKey(subSelect.getKey());
+ subSelectionDO.setUrl(subSelect.getUrl());
+ subSelectionList.add(subSelectionDO);
+ }
+ }
+ comActReserveSubSelectionService.saveBatch(subSelectionList);
+ });
+
+ return R.ok();
+ }
+
+ /**
+ * 社区后台-编辑预约登记信息
+ * @param editReserveDTO 请求参数
+ * @return 新增结果
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R editReserveAdmin(EditReserveAdminDTO editReserveDTO){
+ Date nowDate = new Date();
+ Long userId = editReserveDTO.getUserId();
+ Long reserveId = editReserveDTO.getId();
+ //查询预约登记信息
+ ComActReserveDO reserveDO = this.baseMapper.selectById(reserveId);
+ if(reserveDO == null){
+ return R.fail("未查询到预约登记记录");
+ }
+ if(!reserveDO.getStatus().equals(ComActReserveDO.status.dfb)){
+ return R.fail("不可修改不是待发布状态的预约登记记录");
+ }
+ BeanUtils.copyProperties(editReserveDTO,reserveDO);
+ reserveDO.setStatus(ComActReserveDO.status.dfb);
+ reserveDO.setUpdateAt(nowDate);
+ reserveDO.setUpdateBy(userId);
+ if(editReserveDTO.getIsPublish().equals(ComActReserveDO.isOk.yes)){
+ reserveDO.setStatus(ComActReserveDO.status.jxz);
+ reserveDO.setPublishTime(nowDate);
+ }
+ this.baseMapper.updateById(reserveDO);
+
+ //根据上传的json数据录入选项以及题目到数据库
+ if(StringUtils.isEmpty(editReserveDTO.getJsonObject())){
+ return R.fail("组件json数据为空,录入失败");
+ }
+
+ //清除原来预约登记题目以及题目选项
+ this.baseMapper.deleteReserveSubAll(reserveId);
+ //清除原有的,添加更新的
+ List<QuestnaiteSubVO> reserveSubVOS = JSON.parseArray(editReserveDTO.getJsonObject(),QuestnaiteSubVO.class);
+ if(reserveSubVOS.isEmpty()){
+ return R.fail("组件json数据为空,录入失败");
+ }
+ reserveSubVOS.forEach(reserveSub -> {
+ ComActReserveSubDO comActReserveSubDO = new ComActReserveSubDO();
+ comActReserveSubDO.setType(reserveSub.getType());
+ comActReserveSubDO.setContent(reserveSub.getLabel());
+ comActReserveSubDO.setSort(reserveSub.getSort());
+ comActReserveSubDO.setReserveId(reserveDO.getId());
+ comActReserveSubDO.setCreateBy(userId);
+ comActReserveSubDO.setCreateAt(nowDate);
+ comActReserveSubDO.setKey(reserveSub.getKey());
+ comActReserveSubMapper.insert(comActReserveSubDO);
+
+ ArrayList<ComActReserveSubSelectionDO> subSelectionList = Lists.newArrayList();
+ if(reserveSub.getOptions() != null && !reserveSub.getOptions().isEmpty()) {
+ List<QuestnaiteSubSelectionVO> subOptions = reserveSub.getOptions();
+ for(int i=0; i<subOptions.size(); i++){
+ QuestnaiteSubSelectionVO subSelect = subOptions.get(i);
+ ComActReserveSubSelectionDO subSelectionDO = new ComActReserveSubSelectionDO();
+ subSelectionDO.setReserveSubId(comActReserveSubDO.getId());
+ if(subSelect.getType().equals(1)){
+ //添加选项名称
+ subSelectionDO.setOptionName(subSelect.getOptionName());
+ }else {
+ subSelectionDO.setOptionName(String.valueOf(Character.toChars('A' + i)));
+ }
+ subSelectionDO.setContent(subSelect.getLabel());
+ subSelectionDO.setReserveId(reserveDO.getId());
+ subSelectionDO.setCreateBy(userId);
+ subSelectionDO.setCreateAt(nowDate);
+ subSelectionDO.setType(subSelect.getType());
+ subSelectionDO.setKey(subSelect.getKey());
+ subSelectionList.add(subSelectionDO);
+ }
+ }
+ comActReserveSubSelectionService.saveBatch(subSelectionList);
+ });
+ return R.ok();
+ }
+
+ /**
+ * 社区后台-修改预约登记状态
+ * @param editReserveDTO 请求参数
+ * @return 修改结果
+ */
+ @Override
+ public R editReserveStatusAdmin(EditComActReserveStatusDTO editReserveDTO){
+ Date nowDate = new Date();
+ Long userId = editReserveDTO.getUserId();
+ Long reserveId = editReserveDTO.getId();
+ //查询预约登记信息
+ ComActReserveDO reserveDO = this.baseMapper.selectById(reserveId);
+ if(reserveDO == null){
+ return R.fail("未查询到预约登记记录");
+ }
+
+ if(editReserveDTO.getType().equals(EditComActReserveStatusDTO.type.tz)){
+ reserveDO.setStatus(ComActReserveDO.status.ytz);
+ reserveDO.setEndTime(nowDate);
+ }else if(editReserveDTO.getType().equals(EditComActReserveStatusDTO.type.fb)){
+ reserveDO.setStatus(ComActReserveDO.status.jxz);
+ reserveDO.setPublishTime(nowDate);
+ }
+ reserveDO.setUpdateBy(userId);
+ reserveDO.setUpdateAt(nowDate);
+ if(this.baseMapper.updateById(reserveDO) > 0){
+ return R.ok();
+ }else{
+ return R.fail();
+ }
+ }
+
+ /**
+ * 社区后台-继续预约登记
+ * @param editReserveDTO 请求参数
+ * @return 修改结果
+ */
+ @Override
+ public R editReserveInfoAdmin(EditComActReserveInfoDTO editReserveDTO){
+ Date nowDate = new Date();
+ Long userId = editReserveDTO.getUserId();
+ Long reserveId = editReserveDTO.getId();
+ //查询预约登记信息
+ ComActReserveDO reserveDO = this.baseMapper.selectById(reserveId);
+ if(reserveDO == null){
+ return R.fail("未查询到预约登记记录");
+ }
+ BeanUtils.copyProperties(editReserveDTO,reserveDO);
+ reserveDO.setStatus(ComActReserveDO.status.jxz);
+ reserveDO.setUpdateAt(nowDate);
+ reserveDO.setUpdateBy(userId);
+ reserveDO.setEndTime(null);
+ if(this.baseMapper.updateById(reserveDO) > 0){
+ return R.ok();
+ }else{
+ return R.fail();
+ }
+ }
+
+ /**
+ * 社区后台-根据预约登记id查询详情
+ * @param reserveId 预约登记id
+ * @return 预约登记详情
+ */
+ @Override
+ public R<ComActReserveDetailAdminVO> detailReserveAdmin(Long reserveId) {
+ ComActReserveDetailAdminVO reserveDetailAdminVO = new ComActReserveDetailAdminVO();
+ //查询预约登记信息
+ ComActReserveDO reserveDO = this.baseMapper.selectById(reserveId);
+ BeanUtils.copyProperties(reserveDO,reserveDetailAdminVO);
+ return R.ok(reserveDetailAdminVO);
+ }
+
+ /**
+ * 社区后台-根据社区id统计预约类数据
+ * @param makeStatisticsDTO 请求参数
+ * @return 统计预约类数据
+ */
+ @Override
+ public R makeStatisticsAdmin(ComActReserveMakeStatisticsDTO makeStatisticsDTO){
+ Long communityId = makeStatisticsDTO.getCommunityId();
+ ComActReserveMakeStatisticsAdminVO makeStatisticsAdminVO = new ComActReserveMakeStatisticsAdminVO();
+ //查询预约登记统计汇总左边数据
+ List<ComActReserveMakeLeftStatisticsAdminVO> leftStatisticsList = this.baseMapper.getReserveMakeLeftStatistics(communityId);
+ if(!leftStatisticsList.isEmpty()){
+ makeStatisticsAdminVO.setLeftStatisticsList(leftStatisticsList);
+ }
+
+ //查询预约登记统计汇总右边数据
+ List<ComActReserveMakeRightStatisticsAdminVO> rightStatisticsList = getRightStatisticsList(makeStatisticsDTO);
+ if(!rightStatisticsList.isEmpty()){
+ makeStatisticsAdminVO.setRightStatisticsList(rightStatisticsList);
+ }
+ return R.ok(makeStatisticsAdminVO);
+ }
+
+ /**
+ * 社区后台-查询预约统计汇总右边数据
+ * @param makeStatisticsDTO 请求参数
+ * @return 预约统计汇总右边数据
+ */
+ private List<ComActReserveMakeRightStatisticsAdminVO> getRightStatisticsList(ComActReserveMakeStatisticsDTO makeStatisticsDTO){
+ Long communityId = makeStatisticsDTO.getCommunityId();
+ //查询预约登记统计汇总右边数据
+ List<ComActReserveMakeRightStatisticsAdminVO> rightStatisticsList = this.baseMapper.getReserveMakeRightStatistics(makeStatisticsDTO);
+ if(!rightStatisticsList.isEmpty()){
+ rightStatisticsList.forEach(rightStatistics -> {
+ String date = rightStatistics.getReserveTime();
+ Integer count = this.baseMapper.getReserveRecordCount(communityId,date + " 00:00:00",date + " 23:59:59");
+ rightStatistics.setAllCount(count);
+
+ //计算百分比
+ BigDecimal tag = BigDecimal.ZERO;
+ if(count >= 0){
+ tag = BigDecimal.valueOf(rightStatistics.getCount()).divide(BigDecimal.valueOf(count),2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
+ }
+ rightStatistics.setTag(tag);
+ });
+ }
+ return rightStatisticsList;
+ }
+
+ /**
+ * 社区后台-查询导出预约统计汇总数据
+ * @param makeStatisticsDTO 请求参数
+ * @return 统计预约类数据
+ */
+ @Override
+ public R makeStatisticsExportAdmin(ComActReserveMakeStatisticsDTO makeStatisticsDTO){
+ return R.ok(getRightStatisticsList(makeStatisticsDTO));
+ }
+
+ /**
+ * 删除预约登记信息
+ * @param reserveId 预约登记id
+ * @return 删除结果
+ */
+ @Override
+ public R deleteReserveAdmin(Long reserveId){
+ //查询预约登记信息
+ ComActReserveDO reserveDO = this.baseMapper.selectById(reserveId);
+ if(reserveDO == null){
+ return R.fail("未查询到预约登记信息");
+ }
+ reserveDO.setIsDel(ComActReserveDO.isOk.yes);
+ reserveDO.setUpdateAt(new Date());
+
+ if(this.baseMapper.updateById(reserveDO) > 0){
+ return R.ok();
+ }else{
+ return R.fail();
+ }
+ }
+
+ /**
+ * 查询社区所有预约信息列表
+ * @param communityId 社区id
+ * @return 预约信息列表
+ */
+ @Override
+ public R listReserveAdmin(Long communityId){
+ return R.ok(this.baseMapper.listReserveAdmin(communityId));
+ }
+
+ @Override
+ public R getById(Long id,Long userId,Long recordId,Integer isBack) {
+ ComActReserveDO comActReserveDO=comActReserveMapper.selectById(id);
+ if(comActReserveDO!=null){
+ comActReserveDO.setViewNum(comActReserveDO.getViewNum()+1);
+ ComActReserveDetailVO comActReserveDetailVO=new ComActReserveDetailVO();
+ if(isBack!=1){
+ comActReserveDO.setViewNum(comActReserveDO.getViewNum()+1);
+ 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("create_at"));
+ List<ComActReserveRecordDO> secondlist=comActReserveRecordMapper.selectList(new QueryWrapper<ComActReserveRecordDO>().eq("user_id",userId).eq("reserve_id",id).orderByDesc("create_at"));
+ //判断当前数据是否可重复提交
+ 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());
+ }
+ });
+ }
+ //更新浏览量
+ comActReserveMapper.updateById(comActReserveDO);
+ return R.ok(comActReserveDetailVO);
+ }
+ ComActReserveRecordDO comActReserveRecordDO =comActReserveRecordMapper.selectById(recordId);
+ if(comActReserveRecordDO!=null){
+ BeanUtils.copyProperties(comActReserveRecordDO,comActReserveDetailVO);
+ }
+ //更新浏览量
+ comActReserveMapper.updateById(comActReserveDO);
+ 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));
+ IPage<ComActReserveAppletsVO> ipage = comActReserveRecordMapper.pageReserveList(new Page<>(pageUserReserveDTO.getPageNum(), pageUserReserveDTO.getPageSize()),pageUserReserveDTO);
+ OperationDetailDTO operationDetailDTO = new OperationDetailDTO();
+ ipage.getRecords().forEach(page -> {
+ operationDetailDTO.setReserveRecordId(page.getId());
+ List<ComOperationListVO> operationList = comActReserveRecordMapper.queryAll(operationDetailDTO);
+ page.setOperationList(operationList);
+ });
+ return R.ok(ipage);
+ }
+
+ /**
+ * 小程序查询所有进行中的预约登记
+ * @param communityId 社区id
+ * @return 社区所有进行中的预约登记列表
+ */
+ @Override
+ public R reserveListApplets(Long communityId){
+ return R.ok(this.baseMapper.getReserveIndexList(communityId));
+ }
+
+ @Override
+ public IndexReserve indexReserve(Long communityId) {
+ List<ComActReserveDO> comActReserveDOS=this.comActReserveMapper.selectList(new QueryWrapper<ComActReserveDO>().lambda().eq(ComActReserveDO::getCommunityId,communityId).orderByDesc(ComActReserveDO::getCreateAt).like(ComActReserveDO::getTitle,"返攀登记").eq(ComActReserveDO::getStatus,ComActReserveDO.status.jxz));
+ if(!comActReserveDOS.isEmpty()){
+ IndexBackReserve indexBackReserve=new IndexBackReserve();
+ indexBackReserve.setCount(this.comActReserveRecordMapper.selectCount(new QueryWrapper<ComActReserveRecordDO>().lambda().eq(ComActReserveRecordDO::getReserveId,comActReserveDOS.get(0).getId())));
+
+ }
+
+ return null;
+ }
+
+ public ComMngPopulationDO savePopulation(String idCard){
+ ComMngPopulationDO comMngPopulationDO=new ComMngPopulationDO();
+ comMngPopulationDO.setDeath("1");
+ comMngPopulationDO.setCardNoStr(idCard);
+ comMngPopulationDO.setCardNo(idCard);
+ comMngPopulationDO.setSex(getSex(idCard));
+ comMngPopulationDO.setBirthday(getBirthday(idCard));
+ return comMngPopulationDO;
+ }
+ public Integer getSex(String idCard){
+ char c = idCard.charAt(idCard.length() - 2);
+ Integer gender = Integer.parseInt(String.valueOf(c));
+ if(gender % 2 == 1){
+ return 1;
+ }else{
+ return 2;
+ }
+ }
+ public String getBirthday(String idCard){
+ return idCard.substring(6).substring(0, 4)+"-"+idCard.substring(10).substring(0, 2)+"-"+idCard.substring(12).substring(0,2);
+ }
+
+
+ public static void getFileByBytes(byte[] bytes, String filePath, String fileName) {
+ BufferedOutputStream bos = null;
+ FileOutputStream fos = null;
+ File file = null;
+ try {
+ File dir = new File(filePath);
+ if (!dir.exists()) {// 判断文件目录是否存在
+ dir.mkdirs();
+ }
+ file = new File(filePath + fileName);
+ fos = new FileOutputStream(file);
+ bos = new BufferedOutputStream(fos);
+ bos.write(bytes);
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (bos != null) {
+ try {
+ bos.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (fos != null) {
+ try {
+ fos.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
}
}
--
Gitblit v1.7.1