From 02f18587bd8860b305e2c688e20465be166bb48c Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期四, 22 七月 2021 15:14:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/test' into test

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java | 1439 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 1,375 insertions(+), 64 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
index 332387f..eeaeb70 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
@@ -1,22 +1,42 @@
 package com.panzhihua.service_community.api;
 
+import cn.hutool.core.util.IdcardUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.*;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.SystemmanagementConfigVO;
 import com.panzhihua.common.model.vos.community.*;
-import com.panzhihua.service_community.model.dos.ComActActPrizeDO;
-import com.panzhihua.service_community.model.dos.ComActDynDO;
-import com.panzhihua.service_community.model.dos.ComActMicroWishDO;
+import com.panzhihua.common.model.vos.community.questnaire.EditComActQuestnaireVo;
+import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO;
+import com.panzhihua.common.model.vos.community.questnaire.UsersAnswerQuestnaireVO;
+import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.model.vos.user.UserPhoneVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.*;
+import com.panzhihua.service_community.dao.ComEldersAuthHistoryRecordMapper;
+import com.panzhihua.service_community.dao.ComMngPopulationDAO;
+import com.panzhihua.service_community.model.dos.*;
 import com.panzhihua.service_community.service.*;
+
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
-import org.springframework.data.domain.Page;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Comparator;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -40,6 +60,34 @@
     private ComActMicroWishService comActMicroWishService;
     @Resource
     private ComActEasyPhotoService comActEasyPhotoService;
+    @Resource
+    private ComActService comActService;
+    @Resource
+    private ComMngStructHouseService comMngStructHouseService;
+    @Resource
+    private ComMngStructAreaService comMngStructAreaService;
+    @Resource
+    private ComMngStructOtherBuildService comMngStructOtherBuildService;
+    @Resource
+    private ComMngVolunteerMngService comMngVolunteerMngService;
+    @Resource
+    private ComMngStructAreaDistrictService comMngStructAreaDistrictService;
+    @Resource
+    private ComActMessageService comActMessageService;
+    @Resource
+    private ComActQuestnaireService comActQuestnaireService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private EldersAuthService eldersAuthService;
+    @Resource
+    public ComMngPopulationDAO comMngPopulationDAO;
+    @Resource
+    public ComEldersAuthUserService comEldersAuthUserService;
+    @Resource
+    private ComEldersAuthHistoryRecordMapper comEldersAuthHistoryRecordMapper;
+    @Resource
+    private ComActEasyPhotoActivityService comActEasyPhotoActivityService;
 
     /**
      * 新增社区活动
@@ -51,7 +99,7 @@
     @Transactional(rollbackFor = Exception.class)
     public R addActivity(@RequestBody ComActActivityVO comActActivityVO) {
         R r = comActActivityService.addActivity(comActActivityVO);
-        boolean ok = r.isOk();
+        boolean ok = R.isOk(r);
         if (ok) {
             Long activityId = (Long) r.getData();
             Integer hasPrize = comActActivityVO.getHasPrize();
@@ -72,8 +120,10 @@
                 }
 
             }
+        } else {
+            return R.fail();
         }
-        return R.fail();
+        return R.ok();
     }
 
     /**
@@ -87,10 +137,11 @@
     public R putActivity(@RequestBody ComActActivityVO comActActivityVO) {
         R r = comActActivityService.putActivity(comActActivityVO);
         List<ComActActPrizeVO> comActActPrizeVOList = comActActivityVO.getComActActPrizeVOList();
-        boolean ok = r.isOk();
+        boolean ok = R.isOk(r);
         if (ok) {
-            if (!ObjectUtils.isEmpty(comActActPrizeVOList)) {
-                Long actActivityVOId = comActActivityVO.getId();
+            Integer hasPrize = comActActivityVO.getHasPrize();
+            Long actActivityVOId = comActActivityVO.getId();
+            if (!ObjectUtils.isEmpty(comActActPrizeVOList) && hasPrize.intValue() == 1) {
                 comActActPrizeService.remove(new QueryWrapper<ComActActPrizeDO>().lambda().eq(ComActActPrizeDO::getActivityId, actActivityVOId));
                 if (!ObjectUtils.isEmpty(comActActPrizeVOList)) {
                     List<ComActActPrizeDO> comActActPrizeDOS = new ArrayList<>();
@@ -105,6 +156,9 @@
                         return R.fail("保存奖品失败");
                     }
                 }
+            }else if(hasPrize.intValue() == 0){
+                boolean remove = comActActPrizeService.remove(new QueryWrapper<ComActActPrizeDO>().lambda().eq(ComActActPrizeDO::getActivityId, actActivityVOId));
+                log.info("删除社区活动奖品结果【{}】,社区活动id【{}】",remove,actActivityVOId);
             }
         }
         return r;
@@ -120,6 +174,7 @@
     public R deleteActivity(@RequestBody ComActActivityVO comActActivityVO) {
         boolean remove = comActActivityService.removeById(comActActivityVO.getId());
         if (remove) {
+            comActActPrizeService.remove(new QueryWrapper<ComActActPrizeDO>().lambda().eq(ComActActPrizeDO::getActivityId, comActActivityVO.getId()));
             return R.ok();
         }
         return R.fail();
@@ -131,27 +186,33 @@
      * @param comActActivityVO 查询参数
      * @return 分页集合
      */
-    @PostMapping("pageActivity")
+    @PostMapping("pageactivity")
     public R pageActivity(@RequestBody ComActActivityVO comActActivityVO) {
         R r = comActActivityService.pageActivity(comActActivityVO);
-        if (r.isOk()) {
-            Page<ComActActivityVO> page = (Page<ComActActivityVO>)r.getData();
-            List<ComActActivityVO> content = page.getContent();
+        if (R.isOk(r)) {
+            Page<ComActActivityVO> page = (Page<ComActActivityVO>) r.getData();
+            List<ComActActivityVO> content = page.getRecords();
             if (!ObjectUtils.isEmpty(content)) {
-                List<ComActActPrizeVO> comActActPrizeVOList=new ArrayList<>();
                 content.forEach(comActActivityVO1 -> {
+                    List<ComActActPrizeVO> comActActPrizeVOList = new ArrayList<>();
                     Long id = comActActivityVO1.getId();
                     List<ComActActPrizeDO> list = comActActPrizeService.list(new QueryWrapper<ComActActPrizeDO>().lambda().eq(ComActActPrizeDO::getActivityId, id));
                     if (!ObjectUtils.isEmpty(list)) {
                         list.forEach(comActActPrizeDO -> {
-                            ComActActPrizeVO comActActPrizeVO=new ComActActPrizeVO();
-                            BeanUtils.copyProperties(comActActPrizeDO,comActActPrizeVO);
+                            ComActActPrizeVO comActActPrizeVO = new ComActActPrizeVO();
+                            BeanUtils.copyProperties(comActActPrizeDO, comActActPrizeVO);
                             comActActPrizeVOList.add(comActActPrizeVO);
                         });
                     }
                     comActActivityVO1.setComActActPrizeVOList(comActActPrizeVOList);
-                    comActActPrizeVOList.clear();
+                    Integer participantMax = comActActivityVO1.getParticipantMax();
+                    if (participantMax.intValue()==0) {
+                        comActActivityVO1.setType(1);
+                    }else{
+                        comActActivityVO1.setType(2);
+                    }
                 });
+                page.setRecords(content);
             }
 
         }
@@ -159,85 +220,137 @@
     }
 
     /**
+     * 社区后台分页查询社区活动
+     * @param comActActivityVO 查询参数
+     * @return 返回结果
+     */
+    @PostMapping("pageactivitycommunityback")
+    public R pageActivityCommunityBack(@RequestBody ComActActivityVO comActActivityVO){
+        return  comActActivityService.pageActivityCommunityBack(comActActivityVO);
+    }
+
+    /**
      * 发布活动
+     *
      * @param comActActivityVO 主键id 发布时间
      * @return 发布结果
      */
     @PostMapping("releaseactivity")
-    public R releaseActivity(@RequestBody ComActActivityVO comActActivityVO){
+    public R releaseActivity(@RequestBody ComActActivityVO comActActivityVO) {
         return comActActivityService.releaseActivity(comActActivityVO);
     }
 
     /**
      * 取消活动
+     *
      * @param comActActivityVO 取消原因
      * @return 取消结果
      */
     @PostMapping("cancelactivity")
-    public R cancelActivity(@RequestBody ComActActivityVO comActActivityVO){
+    public R cancelActivity(@RequestBody ComActActivityVO comActActivityVO) {
         return comActActivityService.cancelActivity(comActActivityVO);
     }
 
     /**
      * 活动详情
+     *
      * @param id 活动id
      * @return 详情
      */
     @PostMapping("detailactivity")
-    public R detailActivity(@RequestParam("id") Long id,@RequestParam("userId")Long userId){
-        ComActActivityVO comActActivityVO = comActActivityService.inforActivity(id,userId);
+    public R detailActivity(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+        ComActActivityVO comActActivityVO = comActActivityService.inforActivity(id, userId);
         if (ObjectUtils.isEmpty(comActActivityVO)) {
             return R.fail("活动不存在");
         }
         List<ComActActPrizeDO> comActActPrizeDOS = comActActPrizeService.list(new QueryWrapper<ComActActPrizeDO>().lambda().eq(ComActActPrizeDO::getActivityId, id));
         if (!ObjectUtils.isEmpty(comActActPrizeDOS)) {
-            List<ComActActPrizeVO> comActActPrizeVOS=new ArrayList<>();
+            List<ComActActPrizeVO> comActActPrizeVOS = new ArrayList<>();
             comActActPrizeDOS.forEach(comActActPrizeDO -> {
-                ComActActPrizeVO comActActPrizeVO=new ComActActPrizeVO();
-                BeanUtils.copyProperties(comActActPrizeDO,comActActPrizeVO);
+                ComActActPrizeVO comActActPrizeVO = new ComActActPrizeVO();
+                BeanUtils.copyProperties(comActActPrizeDO, comActActPrizeVO);
                 comActActPrizeVOS.add(comActActPrizeVO);
             });
             comActActivityVO.setComActActPrizeVOList(comActActPrizeVOS);
         }
-        ActivitySignVO activitySignVO=new ActivitySignVO();
+        ActivitySignVO activitySignVO = new ActivitySignVO();
         activitySignVO.setActivityId(id);
-        R r = comActActivityService.listActivitySign(activitySignVO);
-        if (r.isOk()) {
-            List<ActivitySignVO> activitySignVOS=(List<ActivitySignVO>)r.getData();
-            comActActivityVO.setActivitySignVOList(activitySignVOS);
+        R r = comActActivityService.listActivitySigns(activitySignVO);
+        if (R.isOk(r)) {
+            List<ActivitySignVO> activitySignVOS = JSONArray.parseArray(JSONArray.toJSONString( r.getData()),ActivitySignVO.class);
+            if (!ObjectUtils.isEmpty(activitySignVOS)) {
+                for (ActivitySignVO signVO:activitySignVOS) {
+                    if(StringUtils.isEmpty(signVO.getName())){
+                        signVO.setName(signVO.getNickName());
+                    }
+                }
+                List<ActivitySignVO> collect = activitySignVOS.stream().filter(activitySignVO1 -> activitySignVO1.getIsVolunteer() == 1).collect(Collectors.toList());
+                if (!ObjectUtils.isEmpty(collect)) {
+                    int size = collect.size();
+                    if (size>=6) {
+                        comActActivityVO.setActivityVolunteerList(collect.subList(0,6));
+                    } else {
+                        comActActivityVO.setActivityVolunteerList(collect);
+                    }
+                }
+                List<ActivitySignVO> collect1 = activitySignVOS.stream().filter(activitySignVO1 -> activitySignVO1.getIsVolunteer() == 0).collect(Collectors.toList());
+                if (!ObjectUtils.isEmpty(collect1)) {
+                    int size = collect1.size();
+                    if (size>=6) {
+                        comActActivityVO.setActivitySignVOList(collect1.subList(0,6));
+                    } else {
+                        comActActivityVO.setActivitySignVOList(collect1);
+                    }
+                }
+            }
+
         }
+        comActActivityVO.setIntegral(0);
         return R.ok(comActActivityVO);
     }
 
     /**
-     * 活动报名名单
+     * 分页活动报名名单
+     *
      * @param activitySignVO 查询参数
      * @return 报名人员集合
      */
     @PostMapping("listactivitysign")
-    public R listActivitySign(@RequestBody ActivitySignVO activitySignVO){
+    public R listActivitySign(@RequestBody ActivitySignVO activitySignVO) {
         return comActActivityService.listActivitySign(activitySignVO);
     }
 
     /**
+     * 活动报名名单
+     *
+     * @param activitySignVO 查询参数
+     * @return 报名人员集合
+     */
+    @PostMapping("listactivitysigns")
+    public R listActivitySigns(@RequestBody ActivitySignVO activitySignVO) {
+        return comActActivityService.listActivitySigns(activitySignVO);
+    }
+
+    /**
      * 新增社区动态
+     *
      * @param comActDynVO 新增信息
      * @return 新增结果
      */
     @PostMapping("adddynamic")
-    public R addDynamic(@RequestBody ComActDynVO comActDynVO){
-        ComActDynDO comActDynDO=new ComActDynDO();
-        BeanUtils.copyProperties(comActDynVO,comActDynDO);
+    public R addDynamic(@RequestBody ComActDynVO comActDynVO) {
+        ComActDynDO comActDynDO = new ComActDynDO();
+        BeanUtils.copyProperties(comActDynVO, comActDynDO);
         boolean save = comActDynService.save(comActDynDO);
         if (save) {
 //            最多只能设置三条置顶状态,后边设置会取消先前设置的置顶
             Integer isTopping = comActDynVO.getIsTopping();
             boolean b = isTopping.intValue() == 1;
             if (b) {
-                List<ComActDynDO> list = comActDynService.list(new QueryWrapper<ComActDynDO>().lambda().eq(ComActDynDO::getIsTopping, 1).eq(ComActDynDO::getCommunityId,comActDynVO.getCommunityId()));
+                List<ComActDynDO> list = comActDynService.list(new QueryWrapper<ComActDynDO>().lambda().eq(ComActDynDO::getIsTopping, 1).eq(ComActDynDO::getCommunityId, comActDynVO.getCommunityId()));
                 if (!ObjectUtils.isEmpty(list)) {
                     int size = list.size();
-                    if (size==4) {
+                    if (size == 4) {
                         List<ComActDynDO> collect = list.stream().sorted(Comparator.comparing(ComActDynDO::getCreateAt)).collect(Collectors.toList());
                         ComActDynDO comActDynDO1 = collect.get(0);
                         comActDynDO1.setIsTopping(0);
@@ -255,24 +368,33 @@
 
     /**
      * 编辑社区动态
+     *
      * @param comActDynVO 编辑内容
      * @return 编辑结果
      */
     @PostMapping("putdynamic")
-    public R putDynamic(@RequestBody ComActDynVO comActDynVO){
-        ComActDynDO comActDynDO=new ComActDynDO();
-        BeanUtils.copyProperties(comActDynVO,comActDynDO);
+    public R putDynamic(@RequestBody ComActDynVO comActDynVO) {
+        ComActDynDO comActDynDO = new ComActDynDO();
+        Long id = comActDynVO.getId();
+        BeanUtils.copyProperties(comActDynVO, comActDynDO);
+        Integer isTopping = comActDynVO.getIsTopping();
+        boolean b = isTopping.intValue() == 1;
+        if(b){
+            ComActDynDO comActDynDO1 = comActDynService.getById(id);
+            Integer status = comActDynDO1.getStatus();
+            if (status.intValue()==0) {
+                return R.fail("该动态还未发布");
+            }
+        }
         boolean update = comActDynService.updateById(comActDynDO);
         if (update) {
 //            最多只能设置三条置顶状态,后边设置会取消先前设置的置顶
-            Integer isTopping = comActDynVO.getIsTopping();
-            boolean b = isTopping.intValue() == 1;
             if (b) {
-                List<ComActDynDO> list = comActDynService.list(new QueryWrapper<ComActDynDO>().lambda().eq(ComActDynDO::getIsTopping, 1).eq(ComActDynDO::getCommunityId,comActDynVO.getCommunityId()));
+                List<ComActDynDO> list = comActDynService.list(new QueryWrapper<ComActDynDO>().lambda().eq(ComActDynDO::getIsTopping, 1).eq(ComActDynDO::getCommunityId, comActDynVO.getCommunityId()));
                 if (!ObjectUtils.isEmpty(list)) {
                     int size = list.size();
-                    if (size==4) {
-                        List<ComActDynDO> collect = list.stream().sorted(Comparator.comparing(ComActDynDO::getCreateAt)).collect(Collectors.toList());
+                    if (size == 4) {
+                        List<ComActDynDO> collect = list.stream().sorted(Comparator.comparing(ComActDynDO::getUpdateAt)).collect(Collectors.toList());
                         ComActDynDO comActDynDO1 = collect.get(0);
                         comActDynDO1.setIsTopping(0);
                         boolean updateById = comActDynService.updateById(comActDynDO1);
@@ -289,11 +411,12 @@
 
     /**
      * 删除社区动态
+     *
      * @param comActDynVO 动态id
      * @return 删除结果
      */
     @PostMapping("deletedynamic")
-    public R deleteDynamic(@RequestBody ComActDynVO comActDynVO){
+    public R deleteDynamic(@RequestBody ComActDynVO comActDynVO) {
         boolean b = comActDynService.removeById(comActDynVO.getId());
         if (b) {
             return R.ok();
@@ -303,116 +426,167 @@
 
     /**
      * 分页查询社区动态
+     *
      * @param comActDynVO 查询参数
      * @return 动态集合
      */
     @PostMapping("pagedynamic")
-    public R pageDynamic(@RequestBody ComActDynVO comActDynVO){
+    public R pageDynamic(@RequestBody ComActDynVO comActDynVO) {
         return comActDynService.pageDynamic(comActDynVO);
     }
 
     /**
+     * 管理后台分页查询社区动态
+     *
+     * @param comActDynVO 查询参数
+     * @return 动态集合
+     */
+    @PostMapping("pagedynamicByAdmin")
+    public R pagedynamicByAdmin(@RequestBody ComActDynVO comActDynVO) {
+        return comActDynService.pageDynamicByAdmin(comActDynVO);
+    }
+
+    /**
      * 社区动态详情
+     *
      * @param id 动态id
      * @return 详情
      */
     @PostMapping("detaildynamic")
-    public R detailDynamic(@RequestParam("id") Long id){
+    public R detailDynamic(@RequestParam("id") Long id) {
         return comActDynService.detailDynamic(id);
     }
 
 
     /**
      * 分页查询随手拍
+     *
      * @param comActEasyPhotoVO 查询参数
      * @return 心愿列表
      */
     @PostMapping("pageeasyphoto")
-    public R pageEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO){
+    public R pageEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
         return comActEasyPhotoService.pageEasyPhoto(comActEasyPhotoVO);
     }
 
     /**
      * 随手拍详情
-     * @param id 随手拍主键
+     *
+     * @param id     随手拍主键
      * @param userId 登录用户
      * @return 详情内容
      */
     @PostMapping("detaileasyphoto")
-    public R detailEasyPhoto(@RequestParam("id")Long id,@RequestParam("userId")Long userId){
-        return comActEasyPhotoService.detailEasyPhoto(id,userId);
+    public R detailEasyPhoto(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+        return comActEasyPhotoService.detailEasyPhoto(id, userId);
     }
 
     /**
+     * 随手拍删除
+     *
+     * @param id     随手拍主键
+     * @param userId 登录用户
+     * @return 详情内容
+     */
+    @PostMapping("deleteEasyPhoto")
+    public R deleteEasyPhoto(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+        ComActEasyPhotoDO comActEasyPhotoDO = comActEasyPhotoService.getBaseMapper().selectById(id);
+        if(comActEasyPhotoDO==null){
+            return R.fail("随手拍不存在");
+        }
+        comActEasyPhotoDO.setDelTag(1);
+        int updateById = comActEasyPhotoService.getBaseMapper().updateById(comActEasyPhotoDO);
+        if(updateById==1){
+            return R.ok();
+        }
+        return R.fail();
+    }
+    /**
      * 分页查询微心愿
+     *
      * @param comActMicroWishVO 查询参数
      * @return 分页集合
      */
     @PostMapping("pagemicrowish")
-    public R pageMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO){
+    public R pageMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
         return comActMicroWishService.pageMicroWish(comActMicroWishVO);
     }
 
     /**
      * 心愿详情
-     * @param id 查询主键
+     *
+     * @param id     查询主键
      * @param userId 登录用户id
      * @return 心愿内容
      */
     @PostMapping("detailmicrowish")
-    public R detailMicroWish(@RequestParam("id")Long id,@RequestParam("userId")Long userId){
-        return comActMicroWishService.detailMicroWish(id,userId);
+    public R detailMicroWish(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+        return comActMicroWishService.detailMicroWish(id, userId);
     }
 
     /**
      * 审核、分配、反馈心愿
+     *
      * @param comActMicroWishVO 具体操作
      * @return 操作结果
      */
     @PostMapping("putlmicrowish")
-    public R putlMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO){
+    public R putlMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
         return comActMicroWishService.putlMicroWish(comActMicroWishVO);
     }
 
     /**
      * 分页展示我的所有活动 时间倒序排列
+     *
      * @param comActActivityVO 分页参数
      * @return 分页集合
      */
     @PostMapping("pagemyactivity")
-    public R pageMyActivity(@RequestBody ComActActivityVO comActActivityVO){
+    public R pageMyActivity(@RequestBody ComActActivityVO comActActivityVO) {
         return comActActivityService.pageMyActivity(comActActivityVO);
     }
 
     /**
      * 报名/取消报名社区活动
+     *
      * @param signactivityVO 报名参数
      * @return 报名 取消报名 结果
      */
     @PostMapping("signactivity")
-    public R signActivity(@RequestBody SignactivityVO signactivityVO){
+    public R signActivity(@RequestBody SignactivityVO signactivityVO) {
         return comActActivityService.signActivity(signactivityVO);
     }
 
     /**
      * 上传随手拍
+     *
      * @param comActEasyPhotoVO 上传数据
      * @return 上传结果
      */
     @PostMapping("addeasyphoto")
-    public R addEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO){
+    public R addEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
         return comActEasyPhotoService.addEasyPhoto(comActEasyPhotoVO);
     }
 
     /**
+     * 查询随手拍是否有活动
+     * @return  活动详情
+     */
+    @PostMapping("getEasyPhotoActivity")
+    public R getEasyPhotoActivity(@RequestParam("communityId") Long communityId) {
+        return comActEasyPhotoActivityService.getEasyPhotoActivity(communityId);
+    }
+
+    /**
      * 发布微心愿
+     *
      * @param comActMicroWishVO 发布内容
      * @return 发布结果
      */
     @PostMapping("addmicrowish")
-    public R addMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO){
-        ComActMicroWishDO comActMicroWishDO=new ComActMicroWishDO();
-        BeanUtils.copyProperties(comActMicroWishVO,comActMicroWishDO);
+    public R addMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        ComActMicroWishDO comActMicroWishDO = new ComActMicroWishDO();
+        BeanUtils.copyProperties(comActMicroWishVO, comActMicroWishDO);
         boolean save = comActMicroWishService.save(comActMicroWishDO);
         if (save) {
             return R.ok();
@@ -422,22 +596,1159 @@
 
     /**
      * 点赞/取消点赞随手拍
+     *
      * @param comActEasyPhotoVO 操作参数
      * @return 操作结果
      */
     @PostMapping("puteasyphoto")
-    public R putEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO){
+    public R putEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
         return comActEasyPhotoService.putEasyPhoto(comActEasyPhotoVO);
     }
 
     /**
      * 点赞/取消点赞微心愿
+     *
      * @param comActMicroWishVO 操作参数
      * @return 操作结果
      */
     @PostMapping("putmicrowish")
-    R putMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO){
+    public R putMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
         return comActMicroWishService.comActMicroWishVO(comActMicroWishVO);
     }
 
+    /**
+     * 新增社区动态浏览记录
+     *
+     * @param id     动态主键
+     * @param userId 登录用户id
+     * @return 新增结果
+     */
+    @PostMapping("adddynamicuser")
+    public R addDynamicUser(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+        return comActDynService.addDynamicUser(id, userId);
+    }
+
+    /**
+     * 审核反馈随手拍
+     *
+     * @param comActEasyPhotoVO 操作参数
+     * @return 操作结果
+     */
+    @PostMapping("puteasyphotostatus")
+    public R putEasypHotoStatus(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        return comActEasyPhotoService.putEasypHotoStatus(comActEasyPhotoVO);
+    }
+
+    /**
+     * 新增社区
+     *
+     * @param comActVO 社区信息
+     * @return 新增结果
+     */
+    @PostMapping("addcommunity")
+    R addCommunity(@RequestBody ComActVO comActVO) {
+        return comActService.addCommunity(comActVO);
+    }
+
+    /**
+     * 编辑社区
+     *
+     * @param comActVO 编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putCommunity")
+    public R putCommunity(@RequestBody ComActVO comActVO) {
+        return comActService.putCommunity(comActVO);
+    }
+
+    /**
+     * 房屋信息
+     *
+     * @param userId 用户id
+     * @return 房屋信息
+     */
+    @PostMapping("detailhouse")
+    public R detailHouse(@RequestParam("userId") Long userId) {
+        return comMngStructHouseService.detailHouse(userId);
+    }
+
+    /**
+     * 新增小区
+     *
+     * @param comMngStructAreaVO 小区信息
+     * @return 新增结果
+     */
+    @PostMapping("addarea")
+    R addArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
+        R r = comMngStructAreaService.addArea(comMngStructAreaVO);
+        if (R.isOk(r)) {
+            String areaCode = String.valueOf(r.getData()) ;
+            comMngStructAreaVO.setAreaCode(areaCode);
+            R r1 = comMngStructHouseService.addHouseArea(comMngStructAreaVO);
+            return r1;
+        }
+        return r;
+    }
+
+    /**
+     * 分页查询小区
+     *
+     * @param comMngStructAreaVO 查询参数
+     * @return 分页结果
+     */
+    @PostMapping("pagearea")
+    public R pageArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
+        return comMngStructAreaService.pageArea(comMngStructAreaVO);
+    }
+
+    /**
+     * 编辑小区
+     *
+     * @param comMngStructAreaVO 编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putarea")
+    public R putArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
+        return comMngStructAreaService.putArea(comMngStructAreaVO);
+    }
+
+
+    /**
+     * 删除小区
+     *
+     * @param comMngStructAreaVO 地址编码
+     * @return 删除结果
+     */
+    @PostMapping("deletearea")
+    @Transactional(rollbackFor = Exception.class)
+    public R deleteArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
+//        先删除小区小面所有房屋、删除用户和小区房屋的绑定关系
+        R r = comMngStructHouseService.batchDeleteHouse(comMngStructAreaVO);
+        if (R.isOk(r)) {
+            R r1 = comMngStructAreaService.deleteArea(comMngStructAreaVO);
+            if (!R.isOk(r1)) {
+                throw new RuntimeException("删除小区失败");
+            }
+        }
+        return r;
+    }
+
+    /**
+     * 小区批量建房
+     *
+     * @param batchhouseVO 建房参数
+     * @return 建房结果
+     */
+    @PostMapping("batchhouse")
+    public R batchHouse(@RequestBody BatchhouseVO batchhouseVO) {
+        R r = comMngStructHouseService.batchHouse(batchhouseVO);
+        if (R.isOk(r)) {
+            String areaCode = batchhouseVO.getAreaCode();
+            String ruleDoor = batchhouseVO.getRuleDoor();
+            String ruleConnector = batchhouseVO.getRuleConnector();
+            String ruleFloor = batchhouseVO.getRuleFloor();
+            ComMngStructAreaVO comMngStructAreaVO=new ComMngStructAreaVO();
+            comMngStructAreaVO.setRoleDoor(ruleDoor);
+            comMngStructAreaVO.setRoleFloor(ruleFloor);
+            comMngStructAreaVO.setRoleConnector(ruleConnector);
+            comMngStructAreaVO.setAreaCode(areaCode);
+            comMngStructAreaVO.setCommunityId(null);
+            comMngStructAreaVO.setIsAccumulation(null);
+            comMngStructAreaService.putArea(comMngStructAreaVO);
+        }
+        return r;
+    }
+
+    /**
+     * 展示下级建筑
+     *
+     * @param houseCode 房屋编号
+     * @return 下级建筑列表
+     */
+    @PostMapping("listsubordinatebuilding")
+    public R listSubordinatebuilding(@RequestParam("houseCode") String houseCode) {
+        return comMngStructHouseService.listSubordinatebuilding(houseCode);
+    }
+
+    /**
+     * 添加同级地址
+     *
+     * @param batchhouseVO 添加地址
+     * @return 添加结果
+     */
+    @PostMapping("addhouse")
+    public R addHouse(@RequestBody BatchhouseVO batchhouseVO) {
+        R r=comMngStructAreaService.selectAreaByAreaCode(batchhouseVO.getAreaCode());
+        if (R.isOk(r)) {
+            ComMngStructAreaDO comMngStructAreaDO = (ComMngStructAreaDO)r.getData();
+            try {
+                R   r1 = comMngStructHouseService.addHouse(batchhouseVO, comMngStructAreaDO);
+                return r1;
+            } catch (Exception e) {
+                if (e.getMessage().contains("unique_house_name")) {
+                    return R.fail("房屋地址重复");
+                }else {
+                    log.error("添加同级地址失败【{}】",e.getMessage());
+                    return R.fail("添加房屋失败");
+                }
+            }
+
+
+        }
+        return r;
+    }
+
+    /**
+     * 编辑地址
+     *
+     * @param comMngStructHouseVO 编辑内容
+     * @return 编辑结果
+     */
+    @PutMapping("puthouse")
+    public R putHouse(@RequestBody ComMngStructHouseVO comMngStructHouseVO) {
+        return comMngStructHouseService.putHouse(comMngStructHouseVO);
+    }
+
+    /**
+     * 删除地址
+     *
+     * @param comMngStructHouseVO 删除指定地址和所有下级
+     * @return 删除结果
+     */
+    @PostMapping("deletehouse")
+    public R deleteHouse(@RequestBody ComMngStructHouseVO comMngStructHouseVO) {
+        return comMngStructHouseService.deleteHouse(comMngStructHouseVO);
+    }
+
+    /**
+     * 新增其他建筑
+     *
+     * @param comMngStructOtherBuildVO 建筑参数
+     * @return 新增结果
+     */
+    @PostMapping("addotherbuild")
+    public R addOtherbuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO) {
+        return comMngStructOtherBuildService.addOtherbuild(comMngStructOtherBuildVO);
+    }
+
+    /**
+     * 查询所有建筑类型
+     * @return 类型列表
+     */
+    @PostMapping("listbuildtype")
+    public R listBuildType(){
+        return comMngStructOtherBuildService.listBuildType();
+    }
+
+    /**
+     * 分页查询 其他建筑
+     * @param comMngStructOtherBuildVO 分页查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pageotherbuild")
+    public R pageOtherBuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO){
+        return comMngStructOtherBuildService.pageOtherBuild(comMngStructOtherBuildVO);
+    }
+
+    /**
+     * 增加志愿者
+     * @param comMngVolunteerMngVO 志愿者信息
+     * @return 增加结果
+     */
+    @PostMapping("addvolunteer")
+    R addVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO){
+        return comMngVolunteerMngService.addVolunteer(comMngVolunteerMngVO);
+    }
+
+    /**
+     * 获取志愿者详情
+     * @param id
+     * @return
+     */
+    @GetMapping("getVolunteerById")
+    R getVolunteerById(@RequestParam("id")Long id){
+        return comMngVolunteerMngService.getVolunteerById(id);
+    }
+
+    /**
+     * 删除志愿者
+     * @param comMngVolunteerMngVO 手机号
+     * @return 删除结果
+     */
+    @PostMapping("deletevolunteer")
+    public R deleteVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO){
+        return comMngVolunteerMngService.deleteVolunteer(comMngVolunteerMngVO);
+    }
+
+    /**
+     * 编辑志愿者
+     * @param comMngVolunteerMngVO 编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putvolunteer")
+    R putVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO){
+        return comMngVolunteerMngService.putVolunteer(comMngVolunteerMngVO);
+    }
+
+    /**
+     * 分页展示志愿者
+     * @param comMngVolunteerMngVO 查询参数
+     * @return 分页集合返回
+     */
+    @PostMapping("pagevolunteer")
+    public R pageVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO){
+        return comMngVolunteerMngService.pageVolunteer(comMngVolunteerMngVO);
+    }
+
+    /**
+     * 分页展示志愿者审核
+     * @param comMngVolunteerMngVO 查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pagevolunteerexamine")
+    public R pageVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO){
+        return comMngVolunteerMngService.pageVolunteerExamine(comMngVolunteerMngVO);
+    }
+
+    /**
+     * 志愿者审核详情
+     * @param id 主键
+     * @return 详情
+     */
+    @PostMapping("detailvolunteerexamine")
+    public R detailVolunteerExamine(@RequestParam("id") Long id){
+        return comMngVolunteerMngService.detailVolunteerExamine(id);
+    }
+
+    /**
+     * 志愿者审核
+     * @param comMngVolunteerMngVO 审核操作
+     * @return 审核结果
+     */
+    @PostMapping("putvolunteerexamine")
+    public R putVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO){
+        return comMngVolunteerMngService.putVolunteerExamine(comMngVolunteerMngVO);
+    }
+
+    /**
+     * 删除志愿者审核
+     * @param comMngVolunteerMngVO 主键
+     * @return 删除结果
+     */
+    @PostMapping("deletevolunteerexamine")
+    public R deleteVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO){
+        return comMngVolunteerMngService.deleteVolunteerExamine(comMngVolunteerMngVO);
+    }
+
+    /**
+     * 查询区域
+     * @param comActVO 登录人的经纬度、或者指定区域的社区
+     * @return 社区集合
+     */
+    @PostMapping("listcommunity")
+    public R listCommunity(@RequestBody ComActVO comActVO){
+        return comActService.listCommunity(comActVO);
+    }
+
+    /**
+     * 用户修改手机号对应的志愿者手机号也要修改
+     * @param userPhoneVO 新旧手机号
+     * @return 修改结果
+     */
+    @PostMapping("putvolunteerphone")
+    public R putVolunteerPhone(@RequestBody UserPhoneVO userPhoneVO){
+        return comMngVolunteerMngService.putVolunteerPhone(userPhoneVO);
+    }
+
+    /**
+     * 房屋地址下拉列表
+     * @param parentCode 父级编码
+     * @param areaId 小区id
+     * @return 下级列表
+     */
+    @PostMapping("listhouses")
+    public R listHouses(@RequestParam("parentCode")String parentCode, @RequestParam("areaId")Long areaId){
+        if (ObjectUtils.isEmpty(parentCode)) {
+            R r = comMngStructAreaService.selectAreaById(areaId);
+            if (R.isOk(r)) {
+                parentCode =String.valueOf(r.getData()) ;
+            }else{
+                return R.fail("用户没有绑定小区");
+            }
+        }
+        return comMngStructHouseService.putVolunteerPhone(parentCode);
+    }
+
+    /**
+     * 新增房屋
+     * @param comMngStructHouseVO 房屋信息
+     * @return 新增结果
+     */
+    @PostMapping("addhouses")
+    public R addHouses(@RequestBody ComMngStructHouseVO comMngStructHouseVO){
+        R r = comMngStructAreaService.selectAreaById(comMngStructHouseVO.getAreaId());
+        if (!R.isOk(r)) {
+            return R.fail("用户没有绑定小区");
+        }
+        String data = String.valueOf(r.getData());
+        comMngStructHouseVO.setAreaCode(data);
+        return comMngStructHouseService.addHouses(comMngStructHouseVO);
+    }
+
+    /**
+     * 查询小区
+     * @param communityId 社区id
+     * @return 小区集合
+     */
+    @PostMapping("listarea")
+    public R listArea(@RequestParam("communityId")Long  communityId){
+        return comMngStructAreaService.listArea(communityId);
+    }
+
+    /**
+     * 用户参加的所有社区活动
+     * @param userId 用户id
+     * @return 活动列表
+     */
+    @PostMapping("listactivity")
+    public R listActivity(@RequestParam("userId")Long  userId ){
+        return comActActivityService.listActivity(userId);
+    }
+
+    /**
+     * 用户确认心愿
+     * @param comActMicroWishVO 用户评价
+     * @return 确认结果
+     */
+    @PostMapping("putmicrowishconfirm")
+    R putMicroWishConfirm(@RequestBody ComActMicroWishVO comActMicroWishVO){
+        return comActMicroWishService.putMicroWishConfirm(comActMicroWishVO);
+    }
+
+    /**
+     * 建筑类型
+     * @param communityId 社区id
+     * @return 建筑集合
+     */
+    @PostMapping("listcommngstructbuildtype")
+    public R listComMngStructBuildType(@RequestParam("communityId") Long communityId){
+        return comMngStructOtherBuildService.listComMngStructBuildType(communityId);
+    }
+
+    /**
+     * 增加删除建筑类型
+     * @param systemmanagementConfigVO 操作内容
+     * @return  操作结果
+     */
+    @PostMapping("putcommngstructbuildtype")
+    public R putComMngStructBuildType(@RequestBody SystemmanagementConfigVO systemmanagementConfigVO){
+        try {
+            R r=comMngStructOtherBuildService.putComMngStructBuildType(systemmanagementConfigVO);
+        } catch (ServiceException e) {
+            return R.fail(e.getMessage());
+        }
+        return R.ok();
+    }
+
+    /**
+     * 社区详情
+     * @param communityId 社区id
+     * @return 社区详情
+     */
+    @PostMapping("detailcommunity")
+    public R detailCommunity(@RequestParam("communityId") Long communityId){
+        return comActService.detailCommunity(communityId);
+    }
+
+    /**
+     * 小区详情
+     * @param areaId 小区id
+     * @return 小区信息
+     */
+    @PostMapping("detailarea")
+    public R detailArea(@RequestParam("areaId")Long areaId){
+        return comMngStructAreaService.detailArea(areaId);
+    }
+
+    /**
+     * 分页查询社区
+     * @param pageComActDTO 查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pagecommunity")
+    public R pageCommunity(@RequestBody PageComActDTO pageComActDTO){
+        return comActService.pageCommunity(pageComActDTO);
+    }
+
+    /**
+     * 志愿者详情
+     * @param id 主键
+     * @return 志愿者
+     */
+    @PostMapping("detailvolunteer")
+    public R detailVolunteer(@RequestParam("id") Long id){
+        R r = comMngVolunteerMngService.detailVolunteer(id);
+        if (R.isOk(r)) {
+            ComMngVolunteerMngAppletsVO comMngVolunteerMngAppletsVO =(ComMngVolunteerMngAppletsVO) r.getData();
+            String phone = comMngVolunteerMngAppletsVO.getPhone();
+            List<ComActActivityVO> comActActivityVOS= comActActivityService.listActivityByPhone(phone);
+            comMngVolunteerMngAppletsVO.setComActActivityVOList(comActActivityVOS);
+            r.setData(comMngVolunteerMngAppletsVO);
+        }
+        return r;
+    }
+
+    /**
+     * 查询平台所有的社区
+     * @return 社区集合 按照创建顺序倒序排列
+     */
+    @PostMapping("listcommunityall")
+    public R listCommunityAll(){
+        return comActService.listCommunityAll();
+    }
+
+    /**
+     * 社区管理后台数据看板 代办事件
+     * @param communityId 社区id
+     * @param userId 登录用户信息
+     * @return 代办事件列表
+     */
+    @PostMapping("indexdatacommunitybackstage")
+    public R indexDataCommunityBackstage(@RequestParam("communityId") Long communityId, @RequestParam("userId")Long userId){
+        List<TodoEventsVO> todoEventsVOS=new ArrayList<>();
+        List<TodoEventsVO> todoEventsVOS1=comActEasyPhotoService.selectNeedToDo(communityId,userId);
+        List<TodoEventsVO> todoEventsVOS2=comActMicroWishService.selectNeedToDo(communityId,userId);
+        List<TodoEventsVO> todoEventsVOS3=comMngVolunteerMngService.selectNeedToDo(communityId,userId);
+
+        TodoEventsVO todoEventsVO=new TodoEventsVO();
+        todoEventsVO.setType(1);
+        todoEventsVO.setNum(todoEventsVOS1.size());
+        TodoEventsVO todoEventsVO1=new TodoEventsVO();
+        todoEventsVO1.setType(2);
+        todoEventsVO1.setNum(todoEventsVOS2.size());
+        TodoEventsVO todoEventsVO2=new TodoEventsVO();
+        todoEventsVO2.setType(4);
+        todoEventsVO2.setNum(todoEventsVOS3.size());
+        todoEventsVOS.add(todoEventsVO);
+        todoEventsVOS.add(todoEventsVO1);
+        todoEventsVOS.add(todoEventsVO2);
+        return R.ok(todoEventsVOS);
+    }
+
+    /**
+     * 删除社区
+     * @param communityId 社区id
+     * @return 删除结果
+     */
+    @PostMapping("delectcommunity")
+    public R delectCommunity(@RequestParam("communityId") Long communityId){
+        return comActService.delectCommunity(communityId);
+    }
+
+    /**
+     * 定时任务刷新社区动态置顶状态
+     * @return 刷新结果
+     */
+    @PostMapping("timedtaskdynistopping")
+    public R timedTaskDynIstopping(){
+        return comActDynService.timedTaskDynIstopping();
+    }
+    /**
+     * 定时任务刷新社区动态发布状态
+     * @return
+     */
+    @PostMapping("timedtaskdynstatus")
+    public R timedTaskDynStatus(){
+        return comActDynService.timedTaskDynStatus();
+    }
+
+    /**
+     * 定时任务查询所有要取消的社区活动
+     * @return  社区活动集合
+     */
+    @PostMapping("timedtaskactactivity")
+    public R timedTaskActActivity(){
+        return comActActivityService.timedTaskActActivity();
+    }
+
+    /**
+     * 定时任务刷新社区活动的各个状态 除取消外
+     * @return 更新结果
+     */
+    @PostMapping("timedtaskactactivityall")
+    R timedTaskActActivityAll(){
+        return comActActivityService.timedTaskActActivityAll();
+    }
+
+    /**
+     * 定时任务刷新微心愿的状态
+     * @return 更新结果
+     */
+    @PostMapping("timedtaskactmicrowish")
+    R timedTaskActMicroWishAll(){
+        return comActMicroWishService.timedTaskActMicroWishAll();
+    }
+
+    /**
+     * 其他建筑详情
+     * @param id 主键id
+     * @return 建筑内容
+     */
+    @PostMapping("detailotherbuild")
+    public R detailOtherbuild(@RequestParam("id")Long id){
+        return comMngStructOtherBuildService.detailOtherbuild(id);
+    }
+
+    /**
+     * 编辑其他建筑
+     * @param comMngStructOtherBuildVO 编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putotherbuild")
+    public R putOtherbuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO){
+        return comMngStructOtherBuildService.putOtherbuild(comMngStructOtherBuildVO);
+    }
+
+    /**
+     * 删除其他建筑
+     * @param id 主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteotherbuild")
+    public R deleteOtherbuild(@RequestParam("id")Long id){
+        return comMngStructOtherBuildService.deleteOtherbuild(id);
+    }
+
+    /**
+     * 小程序分页查询随手拍
+     * @param comActEasyPhotoVO 查询参数
+     * @return 返回结果
+     */
+    @PostMapping("pageeasyphotoapplets")
+    public R pageEasyPhotoApplets(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO){
+        return comActEasyPhotoService.pageEasyPhotoApplets(comActEasyPhotoVO);
+    }
+
+    /**
+     * 随手拍评论分页查询
+     * @param pageComActEasyPhotoCommentDTO 查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pagecomacteasyphotocomment")
+    public R pageComActEasyPhotoComment(@RequestBody PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO){
+        return comActEasyPhotoService.pageComActEasyPhotoComment(pageComActEasyPhotoCommentDTO);
+    }
+
+    /**
+     * 评论点赞/取消点赞
+     * @param comActEasyPhotoCommentUserDTO 操作
+     * @return 操作结果
+     */
+    @PostMapping("commentsign")
+    public R commentSign(@RequestBody ComActEasyPhotoCommentUserDTO comActEasyPhotoCommentUserDTO){
+        return comActEasyPhotoService.commentSign(comActEasyPhotoCommentUserDTO);
+    }
+
+    /**
+     * 随手拍--评论--新增评论
+     * @param comActEasyPhotoCommentDTO 新增内容
+     * @return 新增结果
+     */
+    @PostMapping("addcomacteasyphotocomment")
+    public R addComActEasyPhotoComment(@RequestBody ComActEasyPhotoCommentDTO comActEasyPhotoCommentDTO){
+        return comActEasyPhotoService.addComActEasyPhotoComment(comActEasyPhotoCommentDTO);
+    }
+
+    /**
+     * 查询城市下属所有地区列表
+     * @param cityAdcode 城市地址编码
+     * @return 地区列表
+     */
+    @PostMapping("listareadistrict")
+    public R listAreaDistrict(@RequestParam("cityAdcode") Long cityAdcode){
+        return comMngStructAreaDistrictService.listAreaDistrict(cityAdcode);
+    }
+
+    /**
+     * 首页图表数据汇总
+     * @param communityId 社区id
+     * @return 图表数据 IndexDataVO
+     */
+    @PostMapping("indexdatacommunitybackstageechart")
+    public R indexDataCommunityBackstageEchart(@RequestParam("communityId")Long communityId){
+        return comActActivityService.indexDataCommunityBackstageEchart(communityId);
+    }
+
+    /**
+     * 选择导入的小区
+     * @param param 小区名字 模糊查询
+     * @param communityId 社区id
+     * @return 小区集合 ComMngStructAreaVO
+     */
+    @PostMapping("listareas")
+    public R listAreas(@RequestParam("param")String param, @RequestParam("communityId")Long communityId){
+        return comMngStructAreaService.listAreas(param,communityId);
+    }
+
+    /**
+     * 检查小区是否已经批量设置过房屋并且返回小区房屋门号规则
+     * @param id 小区id
+     * @return ComMngStructAreaVO
+     */
+    @PostMapping("checkAreaHouse")
+    public R checkAreaHouse(@RequestParam("id")Long id){
+        return comMngStructAreaService.checkAreaHouse(id);
+    }
+    /**
+     * 新增留言
+     * @param comActMessageVO 新增留言信息
+     * @return 发布结果
+     */
+    @PostMapping("addmessage")
+    public R addMessage(@RequestBody ComActMessageVO comActMessageVO){
+        //        微信内容审核
+        return comActMessageService.addMessage(comActMessageVO);
+    }
+    /**
+     * 我发的留言
+     * @return 结果集合
+     */
+    @PostMapping("pagemymessage")
+    public R pageMyMessage (@RequestBody ComActMessageVO comActMessageVO){
+        return comActMessageService.pageMyMessageApplets(comActMessageVO);
+    }
+    /**
+     * 发给我的留言
+     * @return 结果集合
+     */
+    @PostMapping("pagesendtomemessage")
+    public R pageSendToMessage (@RequestBody ComActMessageVO comActMessageVO){
+        return comActMessageService.pageSendToMessageApplets(comActMessageVO);
+    }
+    /**
+     * 根据id查询留言集合
+     * @return 结果集合
+     */
+    @PostMapping("pagemessagebyuser")
+    public R pageMessageByUser (@RequestBody ComActMessageVO comActMessageVO){
+        return comActMessageService.pageMessageByUserApplets(comActMessageVO);
+    }
+    /**
+     * 社区留言
+     * @return 结果集合
+     */
+    @PostMapping("pagemycommunitymessage")
+    public R pageMyCommunityMessage (@RequestBody ComActMessageVO comActMessageVO){
+        return comActMessageService.pageMyCommunityMessageApplets(comActMessageVO);
+    }
+    /**
+     * 新增留言回复
+     * @param comActMessageBackVO 新增留言回复信息
+     * @return 发布结果
+     */
+    @PostMapping("addmessageback")
+    public R addMessageBack(@RequestBody ComActMessageBackVO comActMessageBackVO){
+        //        微信内容审核
+        return comActMessageService.addMessageBack(comActMessageBackVO);
+    }
+    @PostMapping("deletemessage")
+    public R deleteMessage(@RequestBody ComActMessageVO comActMessageVO) {
+        return comActMessageService.deleteMessage(comActMessageVO);
+    }
+
+    @PostMapping("resetmessagepublic")
+    public R resetMessagePublic(@RequestBody ResetComActMessageVO resetComActMessageVO) {
+        return comActMessageService.resetMessagePublic(resetComActMessageVO);
+    }
+
+    /**
+     * 留言详情
+     *
+     * @param id 主键
+     * @return 详情内容
+     */
+    @PostMapping("detailmessage")
+    public R detailMessage(@RequestParam("id") Long id) {
+        return comActMessageService.detailMessage(id);
+    }
+
+    /**
+     * 导出房屋信息
+     * @param areaId
+     * @return
+     */
+    @PostMapping("house/export")
+    public R houseExport(@RequestParam("areaId") Long areaId) {
+        return comMngStructHouseService.houseExport(areaId);
+    }
+
+    /**
+     * 查看用户问卷调查详细
+     * @param userId 用户ID
+     * @param questId 问卷ID
+     * @return 用户问卷调查详细
+     */
+    @GetMapping("questnaire/usersanswer")
+    public R answerInfoQuestnaire(@RequestParam("userId") Long userId, @RequestParam("questId") Long questId) {
+        return comActQuestnaireService.answerInfoQuestnaire(userId, questId);
+    }
+
+    /**
+     * 查看问卷调查详细
+     * @param questId 问卷ID
+     * @return 用户问卷调查详细
+     */
+    @GetMapping("questnaire/view")
+    public R view(@RequestParam("userId") Long userId, @RequestParam("questId") Long questId) {
+        /**
+         * 根据用户身份分别返回 数据
+         */
+        /* 问卷参与者, 已提交问卷则返回问卷详细, 否则返回空的问卷 */
+        boolean isMember = true;//默认情况下,可不做逻辑判断,直接查询返回用户答卷
+        if(isMember) {
+            return comActQuestnaireService.answerInfoQuestnaire(userId, questId);
+        }else {
+            /*非问卷参与者 返回问卷“预览” */
+            return comActQuestnaireService.infoQuestnaire(questId);
+        }
+    }
+
+
+    /**
+     * 新增社区问卷
+     * @param questnaireVO
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("questnaire/addquestnaire")
+    public R addQuestnaire(@RequestBody QuestnaireVO questnaireVO, @RequestParam("communityId") Long communityId, @RequestParam("userId") Long userId) {
+        return comActQuestnaireService.addQuestnaire(questnaireVO, communityId, userId);
+    }
+
+    /**
+     * 社区问卷列表
+     * @param pageQuestnaireDTO
+     * @return
+     */
+    @PostMapping("questnaire/pagequestnaire")
+    public R pageQuestnaire(@RequestBody PageQuestnaireDTO pageQuestnaireDTO,@RequestParam("communityId") Long communityId) {
+        if(pageQuestnaireDTO.getForParty()==null){
+            pageQuestnaireDTO.setForParty(false);
+        }
+        if(pageQuestnaireDTO.getForVolunteer()==null){
+            pageQuestnaireDTO.setForVolunteer(false);
+        }
+        return comActQuestnaireService.pageQuestnaire(pageQuestnaireDTO, communityId);
+    }
+
+    /**
+     * 编辑问卷——问卷、题目、选项
+     * @param questnaireVO
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("questnaire/editquestnaire")
+    public R editQuestnaire(@RequestBody QuestnaireVO questnaireVO) {
+        return comActQuestnaireService.editQuestnaire(questnaireVO);
+    }
+
+    /**
+     * 修改问卷状态
+     * @param editComActQuestnaireVo
+     * @return
+     */
+    @PostMapping("questnaire/editquestnairedo")
+    public R editQuestnaireDO(@RequestBody EditComActQuestnaireVo editComActQuestnaireVo, @RequestParam("userId") Long userId) {
+        return comActQuestnaireService.editQuestnaireDO(editComActQuestnaireVo, userId);
+    }
+
+    /**
+     * 删除问卷  ——隐藏
+     * @param questId 调查问卷Id
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("questnaire/deletequestnaire")
+    public R editQuestnaireDO(@RequestParam("questId") Long questId,@RequestParam("userId") Long userId) {
+        return comActQuestnaireService.deleteQuestnaire(questId,userId);
+    }
+
+    /**
+     * 查看用户问卷调查统计信息
+     * @param questId 问卷ID
+     * @return 用户问卷调查统计信息
+     */
+    @GetMapping("questnaire/stat")
+    public R statistics(@RequestParam("questId") Long questId) {
+        return comActQuestnaireService.statQuestnaire(questId);
+    }
+
+    /**
+     * 问卷答题结果
+     *
+     * @param questId 问卷ID
+     */
+    @PostMapping("questnaire/answerslist")
+    public R answerResultList(@RequestParam("questId")Long questId){
+        return  comActQuestnaireService.answerResultList(questId);
+    }
+    /**
+     * 问卷题目 答卷信息
+     *
+     * @param pageQuestnaireSubDetailsDTO 问卷ID
+     */
+    @PostMapping("questnaire/qaqeustanswerdetails")
+    public R qaQeustAnswerDetails(@RequestBody PageQuestnaireSubDetailsDTO pageQuestnaireSubDetailsDTO){
+        return comActQuestnaireService.qaQeustDetails(pageQuestnaireSubDetailsDTO);
+    }
+
+    /**
+     * 社区问卷回答用户分页
+     * @param pageQuestnaireAnswerDTO
+     * @return 分页数据
+     */
+    @PostMapping("questnaire/pagequestnaireanswer")
+    public R pageQuestnaireAnswer(@RequestBody PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO){
+        return comActQuestnaireService.pageQuestnaireAnswer(pageQuestnaireAnswerDTO);
+    }
+
+    /**
+     * 居民填写问卷调查问卷
+     * @param usersAnswerQuestnaireVO
+     */
+    @PostMapping("questnaire/usersanswequestnaire")
+    public R usersAnsweQuestnaire(@RequestBody UsersAnswerQuestnaireVO usersAnswerQuestnaireVO,@RequestParam("userId") Long userId){
+        return comActQuestnaireService.usersAnsweQuestnaire(usersAnswerQuestnaireVO,userId);
+    }
+
+    /**
+     * 删除微心愿
+     * @param id
+     * @return
+     */
+    @PostMapping("deletemicrowish")
+    public R deletemicrowish(@RequestParam("id") Long id){
+        return comActMicroWishService.deleteMicroWish(id);
+    }
+
+
+
+
+    /**
+     * 新增高龄认证
+     * @param eldersAuthAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/eldersauth/add")
+    R add(@RequestBody EldersAuthAddDTO eldersAuthAddDTO){
+        return eldersAuthService.add(eldersAuthAddDTO);
+    };
+
+    /**
+     * 修改高龄认证
+     * @param eldersAuthEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eldersauth/edit")
+    R edit(@RequestBody EldersAuthEditDTO eldersAuthEditDTO){
+        return eldersAuthService.edit(eldersAuthEditDTO);
+    };
+
+    /**
+     * 分页查找高龄认证
+     * @param pageEldersAuthDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eldersauth/page")
+    R<IPage<EldersAuthVO>> query(@RequestBody PageEldersAuthDTO pageEldersAuthDTO){
+        return eldersAuthService.query(pageEldersAuthDTO);
+    };
+
+    /**
+     * 删除高龄认证
+     * @param EldersAuthDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/eldersauth/delete")
+    R delete(@RequestBody EldersAuthDeleteDTO EldersAuthDeleteDTO){
+        return eldersAuthService.delete(EldersAuthDeleteDTO);
+    };
+
+    /**
+     * 查询高龄认证详细信息
+     * @param id 高龄认证 id
+     * @return 查找结果
+     */
+    @PostMapping("/eldersauth/{id}")
+    R<EldersAuthDetailsVO> eldersAuthDetails(@PathVariable("id") Long id){
+        return eldersAuthService.eldersAuthDetails(id);
+    };
+
+    @PostMapping("/eldersauth/getMyfamilyElders/{userId}")
+    R<List<ComMngFamilyInfoVO>> getMyfamilyElders(@PathVariable("userId") Long userId){
+        List<ComMngFamilyInfoVO> list = comMngPopulationDAO.listFamilyByUserId(userId);
+ 
+        List<ComMngFamilyInfoVO> listRt = new ArrayList<>();
+        list.forEach(rt -> {
+            int age = IdCard.IdNOToAge(rt.getIdCard());
+            boolean isElders = age >= 80;
+            if (isElders) {
+                listRt.add(rt);
+            }
+        });
+        return R.ok(listRt);
+    }
+
+    @PostMapping("/eldersauth/addByFamilyUser")
+    @Transactional(rollbackFor = Exception.class)
+    R addByFamilyUser(@RequestBody EldersAuthAddByFamilyDTO eldersAuthAddByFamilyDTO){
+
+        ComEldersAuthUserDO authUserDO = comEldersAuthUserService.getById(eldersAuthAddByFamilyDTO.getFamilyUserId());
+        if(authUserDO == null){
+            return R.fail("未查询到老人信息");
+        }
+
+        Long elderId = authUserDO.getId();
+        boolean canReAuthThisMonth = comEldersAuthUserService.checkReAuthAgain(elderId);
+        if(!canReAuthThisMonth){
+            return R.fail("当月已认证,不能再次进行认证");
+        }
+
+        String idCard = authUserDO.getIdCard();
+
+        Long loginUserId = eldersAuthAddByFamilyDTO.getUserId();
+        EldersAuthDO eldersAuthDO = new EldersAuthDO();
+        eldersAuthDO.setSumitUserId(loginUserId);
+        eldersAuthDO.setCreateBy(loginUserId);
+        eldersAuthDO.setCreateAt(new Date());
+        eldersAuthDO.setIdCard(idCard);
+        eldersAuthDO.setAuthUserName(authUserDO.getName());
+        eldersAuthDO.setVideoUrl(eldersAuthAddByFamilyDTO.getVideoUrl());
+        eldersAuthDO.setFamilyUserId(authUserDO.getId());
+        eldersAuthDO.setAge(IdcardUtil.getAgeByIdCard(idCard));
+        //根据身份证查询出籍贯 出生日期
+        //String domicile = IdCard.domicile(eldersAuthDO.getIdCard());
+        String domicile = eldersAuthService.queryDomicile(eldersAuthDO.getIdCard());
+        if(StringUtils.isEmpty(domicile)){
+            domicile = "暂无";
+        }
+
+        Date birthDay = IdCard.birthDay(idCard);
+        eldersAuthDO.setDomicile(domicile);
+        eldersAuthDO.setBirthDay(birthDay);
+        int add = eldersAuthService.getBaseMapper().insert(eldersAuthDO);
+        if(add==1){
+            //设置认证成功
+            Long familyUserId = eldersAuthDO.getFamilyUserId();
+            ComEldersAuthUserDO comEldersAuthUserDO = new ComEldersAuthUserDO();
+            comEldersAuthUserDO.setId(familyUserId);
+            comEldersAuthUserDO.setIsAuth(1);
+            boolean updated = comEldersAuthUserService.updateById(comEldersAuthUserDO);
+            if(!updated){
+                throw  new ServiceException("添加认证失败,更新认证状态");
+            }
+            //认证成功  添加认证记录
+            List<ComEldersAuthHistoryRecordDO> authHistoryRecordDOList = comEldersAuthHistoryRecordMapper.selectList(new QueryWrapper<ComEldersAuthHistoryRecordDO>()
+                    .lambda().eq(ComEldersAuthHistoryRecordDO::getIdCard,idCard).ge(ComEldersAuthHistoryRecordDO::getCreateAt, DateUtils.getFirstDayOfMonth()));
+            if(authHistoryRecordDOList.isEmpty()){
+                ComEldersAuthHistoryRecordDO authHistoryRecordDO = new ComEldersAuthHistoryRecordDO();
+                authHistoryRecordDO.setUserId(eldersAuthAddByFamilyDTO.getFamilyUserId());
+                authHistoryRecordDO.setAuthId(eldersAuthDO.getId());
+                BeanUtils.copyProperties(eldersAuthDO,authHistoryRecordDO);
+                authHistoryRecordDO.setId(null);
+                authHistoryRecordDO.setBrithday(AgeUtils.getAgeFormatBirthday(IdcardUtil.getBirthByIdCard(idCard)));
+                authHistoryRecordDO.setAge(IdcardUtil.getAgeByIdCard(idCard));
+                authHistoryRecordDO.setIsAuth(1);
+                authHistoryRecordDO.setDomicile(domicile);
+                comEldersAuthHistoryRecordMapper.insert(authHistoryRecordDO);
+            }
+            return R.ok(eldersAuthDO.getId());
+        }
+
+        return R.fail();
+    }
+
+    /**
+     * 新增高龄认证社区反馈
+     * @param {classNameFirstLower}AddDTO 添加高龄认证社区反馈传递对象
+     * @return 新增结果
+     */
+    @PostMapping("/eldersauth/addFeedback")
+    R add(@RequestBody EldersAuthFeedbackAddDTO eldersAuthFeedbackAddDTO){
+        ClazzUtils.setIfStringIsEmpty(eldersAuthFeedbackAddDTO);
+        EldersAuthDO eldersAuthDO = eldersAuthService.getBaseMapper().selectById(eldersAuthFeedbackAddDTO.getAuthId());
+        if(eldersAuthDO==null){
+            return R.fail("认证记录不存在");
+        }
+        R addR = eldersAuthService.addFeedback(eldersAuthFeedbackAddDTO);
+        if(R.isOk(addR)){
+            SysUserNoticeVO sysUserNoticeVO=new SysUserNoticeVO();
+            sysUserNoticeVO.setUserId(eldersAuthDO.getSumitUserId());
+            sysUserNoticeVO.setType(3);
+            sysUserNoticeVO.setTitle("高龄认证社区反馈");
+            sysUserNoticeVO.setBusinessType(13);
+            sysUserNoticeVO.setBusinessTitle(" ");
+            sysUserNoticeVO.setBusinessContent("你提交【" +eldersAuthDO.getAuthUserName() + "】的高龄认证,社区反馈:"
+                    + eldersAuthFeedbackAddDTO.getFeedBack());
+            sysUserNoticeVO.setBusinessId(eldersAuthDO.getId());
+            sysUserNoticeVO.setStatus(0);
+            sysUserNoticeVO.setBusinessStatus(2);
+            R r1 = userService.addNotice(sysUserNoticeVO);
+            if (R.isOk(r1)) {
+                log.info("新增用户报名党建活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+            }
+        }
+
+        return addR;
+    }
+
+
+    /**
+     * 查询导出高龄老人
+     * @param pageEldersAuthDTO
+     * @return
+     */
+    @PostMapping("/eldersauth/eldersAuthQuery")
+    R eldersAuthQuery(@RequestBody PageEldersAuthDTO pageEldersAuthDTO){
+        return eldersAuthService.queryExportData(pageEldersAuthDTO);
+    }
+
+    /**
+     * 设置社区认证方式
+     * @param communityId 社区ID
+     * @param type 核验类型(1.视频认证 2.人脸核验)
+     * @return
+     */
+    @PostMapping("/elders/setCommunityAuthType")
+    R setCommunityAuthType(@RequestParam("communityId")Long communityId,@RequestParam("type") Integer type){
+        return eldersAuthService.setCommunityAuthType(communityId, type);
+    }
+
+    /**
+     * 随手拍活动定时任务
+     * @return  执行结果
+     */
+    @PostMapping("timeTaskEasyPhotoActivity")
+    public R timeTaskEasyPhotoActivity(){
+        return comActEasyPhotoActivityService.timeTaskEasyPhotoActivity();
+    }
+
+    /**
+     * 社区随手拍列表统计
+     * @param communityId   社区id
+     * @return  统计结果
+     */
+    @GetMapping("easyphoto/statistics")
+    public R easyPhotoStatistics(@RequestParam("communityId")Long communityId) {
+        return comActEasyPhotoService.easyPhotoStatistics(communityId);
+    }
+
+    /**
+     * 综治后台-查询社区列表
+     * @return  社区列表
+     */
+    @GetMapping("/eventgrid/community/list")
+    public R getCommunityLists(){
+        return comActService.getCommunityLists();
+    }
 }

--
Gitblit v1.7.1