From b8129d34235cc9af66642d4a44bc68df2debd2ba Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期一, 23 八月 2021 19:20:36 +0800
Subject: [PATCH] bug修复

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java |   68 +++++++++++++++++++++++++++++++---
 1 files changed, 62 insertions(+), 6 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java
index 78e8f17..b2ad6d8 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java
@@ -518,12 +518,13 @@
         Long userId = answerQuestnaireVO.getUserId();
         Long questId = answerQuestnaireVO.getQuestId();
         Date nowDate = new Date();
+
         ComActQuestnaireDO questnaireDO = questnaireDAO.selectById(questId);
         if (questnaireDO == null) {
             return R.fail("调查问卷不存在!");
         }
 
-        if(questnaireDO.getState().equals(ComActQuestnaireDO.state.dyz)){
+        if(!questnaireDO.getState().equals(ComActQuestnaireDO.state.dyz)){
             return R.fail("该调查问卷已结束,不可提交!");
         }
 
@@ -531,6 +532,24 @@
                 .eq(ComActQuestnaireUserAnswerDO::getQuestnaireId,questId).eq(ComActQuestnaireUserAnswerDO::getUserId,userId));
         if(oldUserAnswerDO != null){
             return R.fail("您已填写该问卷,不可重复提交");
+        }
+
+        //查询填报人员信息
+        R<LoginUserInfoVO> userResult = userService.getUserInfoByUserId(userId + "");
+        if(!R.isOk(userResult)){
+            log.error("填写问卷调查失败,未查询到用户信息");
+            return R.fail("填写失败");
+        }
+        LoginUserInfoVO userInfo = userResult.getData();
+        if(questnaireDO.getForParty().equals(ComActQuestnaireDO.isOk.yes)){
+            if(!userInfo.getIsPartymember().equals(1)){
+                return R.fail("您还未进行党员认证,无法填报");
+            }
+        }
+        if(questnaireDO.getForVolunteer().equals(ComActQuestnaireDO.isOk.yes)){
+            if(!userInfo.getIsVolunteer().equals(1)){
+                return R.fail("您还未进行志愿者认证,无法填报");
+            }
         }
 
         List<ComActQuestnaireAnswerContentDO> answerContentList = new ArrayList<>();
@@ -663,6 +682,11 @@
         return R.ok(result);
     }
 
+    /**
+     * 问卷调查统计汇总
+     * @param summaryDTO   请求参数
+     * @return  统计汇总
+     */
     @Override
     public R statisticsSummary(StatisticsSummaryDTO summaryDTO){
         IPage<QuestnaireStatisticsSummaryAdminVO> summaryAdminList = questnaireDAO.getStatisticsSummaryAdmin(new Page(summaryDTO.getPageNum(),summaryDTO.getPageSize()),summaryDTO);
@@ -673,9 +697,14 @@
                 summary.setTag(BigDecimal.valueOf(summary.getCount()).divide(BigDecimal.valueOf(summary.getAllCount()),2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)));
             }
         });
-        return R.ok(questnaireDAO.getStatisticsSummaryAdmin(new Page(summaryDTO.getPageNum(),summaryDTO.getPageSize()),summaryDTO));
+        return R.ok(summaryAdminList);
     }
 
+    /**
+     * 问卷调查统计汇总导出数据查询
+     * @param questId   调查问卷id
+     * @return  调查统计汇总导出数据
+     */
     @Override
     public R statisticsSummaryExport(Long questId){
         List<QuestnaireStatisticsSummaryExcelAdminVO> summaryExcelList = questnaireDAO.getStatisticsSummaryExcelAdmin(questId);
@@ -689,12 +718,28 @@
         return R.ok(summaryExcelList);
     }
 
+    /**
+     * 问卷调查统计汇总表头统计
+     * @param questId   调查问卷id
+     * @return  问卷调查统计汇总表头统计数据
+     */
     @Override
-    public R statisticsSummaryHeader(Long questId){
-        QuestnaireStatisticsSummaryHeaderAdminVO summaryHeaderAdminVO = this.questnaireDAO.statisticsSummaryHeader(questId);
+    public R statisticsSummaryHeader(Long questId,Long communityId){
+        QuestnaireStatisticsSummaryHeaderAdminVO summaryHeaderAdminVO = this.questnaireDAO.statisticsSummaryHeader(questId,communityId);
+        if(summaryHeaderAdminVO != null){
+            if(!summaryHeaderAdminVO.getUserCount().equals(0)){
+                BigDecimal nub1 = BigDecimal.valueOf(summaryHeaderAdminVO.getAllCount());
+                BigDecimal nub2 = BigDecimal.valueOf(summaryHeaderAdminVO.getUserCount());
+                BigDecimal result = nub1.divide(nub2,2,RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
+                summaryHeaderAdminVO.setTag(result);
+            }
+        }
         return R.ok(summaryHeaderAdminVO);
     }
 
+    /**
+     * 定时任务检测待发布,调研中的问卷调查状态
+     */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public R timedTaskQuestionnaire(){
@@ -702,7 +747,7 @@
         //查询所有开始时间已经超过当前时间的待发布状态调查问卷
         List<ComActQuestnaireDO> questnaireDOList = questnaireDAO.selectList(new QueryWrapper<ComActQuestnaireDO>().lambda()
                 .eq(ComActQuestnaireDO::getState,ComActQuestnaireDO.state.dfb).eq(ComActQuestnaireDO::getIsHide,0)
-                .ge(ComActQuestnaireDO::getStartTime,nowDate));
+                .le(ComActQuestnaireDO::getStartTime,nowDate));
         questnaireDOList.forEach(questnaire -> {
             questnaire.setState(ComActQuestnaireDO.state.dyz);
             questnaire.setPublishTime(nowDate);
@@ -712,7 +757,7 @@
         //查询所有结束时间已经超过当前时间的调研中状态调查问卷
         List<ComActQuestnaireDO> questnaireList = questnaireDAO.selectList(new QueryWrapper<ComActQuestnaireDO>().lambda()
                 .eq(ComActQuestnaireDO::getState,ComActQuestnaireDO.state.dyz).eq(ComActQuestnaireDO::getIsHide,0)
-                .ge(ComActQuestnaireDO::getEndTime,nowDate));
+                .le(ComActQuestnaireDO::getEndTime,nowDate));
         questnaireList.forEach(questnaire -> {
             questnaire.setState(ComActQuestnaireDO.state.yjs);
             questnaireDAO.updateById(questnaire);
@@ -720,6 +765,11 @@
         return R.ok();
     }
 
+    /**
+     * 小程序-新增问卷调查浏览数量
+     * @param questId   问卷调查id
+     * @return  增加结果
+     */
     @Override
     public R addQuestnaireView(Long questId){
         ComActQuestnaireDO questnaireDO = questnaireDAO.selectById(questId);
@@ -730,6 +780,12 @@
         return R.ok();
     }
 
+    /**
+     * 小程序-用户弹窗添加不在提醒接口
+     * @param questId   问卷id
+     * @param userId    用户id
+     * @return  添加结果
+     */
     @Override
     public R addNoNotice(Long questId,Long userId){
         questnaireDAO.addNoNotice(questId,userId);

--
Gitblit v1.7.1