huanghongfa
2021-05-20 50e1eb020efe8da670b718d865fa4c1eaa61ee7d
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
@@ -1,29 +1,42 @@
package com.panzhihua.service_community.api;
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.advertisement.ComOpsAdvDTO;
import com.panzhihua.common.model.dtos.community.PageComActDTO;
import com.panzhihua.common.model.dtos.user.PageFeedBackDTO;
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.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.service_community.model.dos.ComActActPrizeDO;
import com.panzhihua.service_community.model.dos.ComActDynDO;
import com.panzhihua.service_community.model.dos.ComActMicroWishDO;
import com.panzhihua.service_community.model.dos.ComMngStructAreaDO;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.ClazzUtils;
import com.panzhihua.common.utlis.IdCard;
import com.panzhihua.common.utlis.IdCardUtil;
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.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;
@@ -57,6 +70,18 @@
    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;
    /**
     * 新增社区活动
@@ -174,12 +199,28 @@
                        });
                    }
                    comActActivityVO1.setComActActPrizeVOList(comActActPrizeVOList);
                    Integer participantMax = comActActivityVO1.getParticipantMax();
                    if (participantMax.intValue()==0) {
                        comActActivityVO1.setType(1);
                    }else{
                        comActActivityVO1.setType(2);
                    }
                });
                page.setRecords(content);
            }
        }
        return r;
    }
    /**
     * 社区后台分页查询社区活动
     * @param comActActivityVO 查询参数
     * @return 返回结果
     */
    @PostMapping("pageactivitycommunityback")
    public R pageActivityCommunityBack(@RequestBody ComActActivityVO comActActivityVO){
        return  comActActivityService.pageActivityCommunityBack(comActActivityVO);
    }
    /**
@@ -230,13 +271,33 @@
        activitySignVO.setActivityId(id);
        R r = comActActivityService.listActivitySign(activitySignVO);
        if (R.isOk(r)) {
            List<ActivitySignVO> activitySignVOS = (List<ActivitySignVO>) r.getData();
            int size = activitySignVOS.size();
            if (size>=6) {
                comActActivityVO.setActivitySignVOList(activitySignVOS.subList(0,6));
            } else {
                comActActivityVO.setActivitySignVOList(activitySignVOS);
            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);
@@ -297,12 +358,20 @@
    @PostMapping("putdynamic")
    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()));
                if (!ObjectUtils.isEmpty(list)) {
@@ -350,6 +419,17 @@
    }
    /**
     * 管理后台分页查询社区动态
     *
     * @param comActDynVO 查询参数
     * @return 动态集合
     */
    @PostMapping("pagedynamicByAdmin")
    public R pagedynamicByAdmin(@RequestBody ComActDynVO comActDynVO) {
        return comActDynService.pageDynamicByAdmin(comActDynVO);
    }
    /**
     * 社区动态详情
     *
     * @param id 动态id
@@ -384,6 +464,26 @@
        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();
    }
    /**
     * 分页查询微心愿
     *
@@ -530,7 +630,7 @@
     * @param comActVO 编辑内容
     * @return 编辑结果
     */
    @PutMapping("putCommunity")
    @PostMapping("putCommunity")
    public R putCommunity(@RequestBody ComActVO comActVO) {
        return comActService.putCommunity(comActVO);
    }
@@ -615,7 +715,22 @@
     */
    @PostMapping("batchhouse")
    public R batchHouse(@RequestBody BatchhouseVO batchhouseVO) {
        return comMngStructHouseService.batchHouse(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;
    }
    /**
@@ -640,7 +755,19 @@
        R r=comMngStructAreaService.selectAreaByAreaCode(batchhouseVO.getAreaCode());
        if (R.isOk(r)) {
            ComMngStructAreaDO comMngStructAreaDO = (ComMngStructAreaDO)r.getData();
            return comMngStructHouseService.addHouse(batchhouseVO,comMngStructAreaDO);
            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;
    }
@@ -705,6 +832,16 @@
    @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);
    }
    /**
@@ -956,15 +1093,19 @@
        List<TodoEventsVO> todoEventsVOS1=comActEasyPhotoService.selectNeedToDo(communityId,userId);
        List<TodoEventsVO> todoEventsVOS2=comActMicroWishService.selectNeedToDo(communityId,userId);
        List<TodoEventsVO> todoEventsVOS3=comMngVolunteerMngService.selectNeedToDo(communityId,userId);
        if (!ObjectUtils.isEmpty(todoEventsVOS1)) {
            todoEventsVOS.addAll(todoEventsVOS1);
        }
        if (!ObjectUtils.isEmpty(todoEventsVOS2)) {
            todoEventsVOS.addAll(todoEventsVOS2);
        }
        if (!ObjectUtils.isEmpty(todoEventsVOS3)) {
            todoEventsVOS.addAll(todoEventsVOS3);
        }
        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);
    }
@@ -1013,5 +1154,515 @@
        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> sortedList = list.stream().sorted(Comparator.comparing(ComMngFamilyInfoVO::getCreateAt).reversed()).collect(Collectors.toList());
        List<ComMngFamilyInfoVO> listRt = new ArrayList<>();
        sortedList.forEach(rt -> {
            int age = IdCard.IdNOToAge(rt.getIdCard());
            boolean isElders = age >= 80;
            if (isElders) {
                listRt.add(rt);
            }
        });
        return R.ok(listRt);
    }
    @PostMapping("/eldersauth/addByFamilyUser")
    R addByFamilyUser(@RequestBody EldersAuthAddByFamilyDTO eldersAuthAddByFamilyDTO){
        List<ComMngFamilyInfoVO> list = comMngPopulationDAO.listFamilyByUserId(eldersAuthAddByFamilyDTO.getUserId());
        ComMngFamilyInfoVO theFamily = null;
        Long familyUserId = eldersAuthAddByFamilyDTO.getFamilyUserId();
        for (ComMngFamilyInfoVO family : list) {
            if (familyUserId == family.getId()) {
                theFamily = family;
            }
        }
        if(theFamily==null){
            return R.fail("家庭成员信息错误");
        }
        Integer age = IdCard.IdNOToAge(theFamily.getIdCard());
        if(age>=80){
            Long loginUserId = eldersAuthAddByFamilyDTO.getUserId();
            EldersAuthDO eldersAuthDO = new EldersAuthDO();
            eldersAuthDO.setSumitUserId(eldersAuthAddByFamilyDTO.getSumitUserId());
            eldersAuthDO.setCreateBy(loginUserId);
            eldersAuthDO.setCreateAt(new Date());
            eldersAuthDO.setIdCard(theFamily.getIdCard());
            eldersAuthDO.setAuthUserName(theFamily.getName());
            eldersAuthDO.setVideoUrl(eldersAuthAddByFamilyDTO.getVideoUrl());
            eldersAuthDO.setFamilyUserId(eldersAuthAddByFamilyDTO.getFamilyUserId());
            //根据身份证查询出籍贯 出生日期
            //String domicile = IdCard.domicile(eldersAuthDO.getIdCard());
            String domicile = eldersAuthService.queryDomicile(eldersAuthDO.getIdCard());
            if(StringUtils.isEmpty(domicile)){
                domicile = "暂无";
            }
            Date birthDay = IdCard.birthDay(eldersAuthDO.getIdCard());
            eldersAuthDO.setDomicile(domicile);
            eldersAuthDO.setBirthDay(birthDay);
            int add = eldersAuthService.getBaseMapper().insert(eldersAuthDO);
            if(add==1){
                return R.ok(eldersAuthDO.getId());
            }
        }else{
            return R.fail("家庭成员年龄还未达到80");
        }
        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);
    }
}