From c1e48a47b39dbd6919bfd9cf2e7023e9f3d6fee8 Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期五, 05 十一月 2021 10:24:21 +0800 Subject: [PATCH] 1105测试代码修改 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java | 539 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 518 insertions(+), 21 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 acded43..05682b6 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,11 +1,26 @@ package com.panzhihua.service_community.service.impl; +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.OperationDetailDTO; +import com.panzhihua.common.model.dtos.community.reserve.*; +import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.model.vos.community.ComActReserveIndexVo; +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.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; @@ -13,9 +28,24 @@ 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; +import org.springframework.beans.BeanUtils; 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 org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; @@ -43,6 +73,10 @@ private ComActReserveRecordMapper comActReserveRecordMapper; @Resource private ComActReserveOperationRecordMapper comActReserveOperationRecordMapper; + @Resource + private ComActReserveSubSelectionService comActReserveSubSelectionService; + @Resource + private ComActReserveRecordService comActReserveRecordService; private final static String COMMIT="用户已提交"; @Override @@ -51,10 +85,21 @@ if(comActReserveCommitVO!=null){ 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("预约已上限"); + } + } + 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 { @@ -73,7 +118,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,60 +162,512 @@ 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)){ + //问答题处理 + 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.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); userAnswerDO.setJsonObject(comActReserveCommitVO.getJsonObject()); - userAnswerDO.setStatus(ComActReserveRecordDO.status.dcl); - comActReserveRecordMapper.insert(userAnswerDO); + if(comActReserveCommitVO.getType()==ComActReserveRecordDO.type.yy){ + userAnswerDO.setStatus(ComActReserveRecordDO.status.dcl); + } + else { + 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.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("参数错误"); } + + /** + * 社区后台-分页查询预约登记列表 + * @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 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("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()); + } + }); + } + //更新浏览量 + 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)); + } + + + 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