From 1775bb71f952106c58657cf02891cbe2a286c8f8 Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期三, 22 九月 2021 11:30:47 +0800
Subject: [PATCH] Merge branch 'test' of http://gitlab.nhys.cdnhxx.com/root/zhihuishequ into test

---
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityConvenientApi.java                         |    3 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwSafetyWorkRecordServiceImpl.java          |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWorkGuideService.java                         |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireAnswerContentDOMapper.xml                                       |   48 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/SignElderAuthStatisticDTO.java                         |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/UserDao.xml                                                                          |  425 +
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishOperationRecordMapper.xml                                        |   36 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/AdvertisingManagementApi.java                           |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterDetailedAnswerVO.java            |    3 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishOperationRecordVO.java                         |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java                        |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthPensionerService.java                 |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthDOMapper.xml                                                       |  112 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussDTO.java                                    |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java                                   |  154 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationPensionExcelVO.java                           |  132 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordImportExcelVO.java                        |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/LcCompareMemberCodeMapper.xml                                                        |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationEditDTO.java                                 |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthPensionerDO.java                    |  144 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java                               |  149 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/SysConfService.java                                 |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java                                                              |    8 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussCommentDTO.java                             |    7 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussCommentDO.java                       |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java                  |   55 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java                                  |  467 +
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java                                  |  751 +
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java                |  319 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComMngFamilyInfoDAO.xml                                                              |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordStatisticExcleVO.java                       |   68 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideAppletsVO.java                                 |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveSubSelectionDO.java                  |    5 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/MinioUtil.java                                             |  125 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireDAO.java                                |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java                                      |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserAgreementDAO.xml                                                              |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleDetailAppVO.java                           |    6 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthElderliesDAO.java                           |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishFeedbackVO.java                                |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthHistoryVO.java                                      |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMicroWishOperationRecordService.java          |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/RedisUtils.java                                                             |  247 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysOperLogDAO.xml                                                                    |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/RoleDAO.xml                                                                          |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideDO.java                            |    4 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserFeedbackDAO.xml                                                               |   67 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthHistoryRecordDO.java                 |   72 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoServiceImpl.java                |   59 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationRehabilitationExcelListen.java                             |   12 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthPensionerDAO.java                         |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwSafetyWorkRecordService.java                   |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwDangerReportEditDTO.java                                |  221 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireSubVO.java                                    |    2 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java                                             |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordEditDTO.java                                |  124 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleTopicDO.java                  |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireStatisticsSummaryExcelAdminVO.java       |    4 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleTopicService.java               |   11 
 springcloud_k8s_panzhihuazhihuishequ/service_property/pom.xml                                                                                                    |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServer.java                                        |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionUserVO.java                                |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthMethodEnum.java                                                 |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionUserDOMapper.xml                                             |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleTopicAppVO.java                            |    6 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleService.java                    |    7 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/CommonApi.java                                                |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishOperationRecordMapper.java               |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveSubMapper.xml                                                      |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthHistoryRecordMapper.xml                                            |   88 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthStatisticVO.java                                    |   93 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java                                             |    5 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/MinioUtil.java                                   |    7 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSwPatrolRecordApi.java                               |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoDOMapper.xml                                                     |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleDAO.java                            |   60 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/AddComActNeighborCircleAppDTO.java                            |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageIdentityAuthRecordDTO.java                               |   37 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommonDataApi.java                                  |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/AddIdentityAuthDTO.java                                      |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveService.java                           |    7 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/bootstrap.yml                                                                                    |    4 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserFeedbackDAO.java                                           |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthRecordsDAO.java                             |   62 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/test/java/com/panzhihua/service_user/dao/UserDaoTest.java                                                  |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionDOMapper.xml                                                 |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwSafetyWorkRecordVO.java                                  |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysOperLogDAO.java                                                |    3 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java                                                          |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageElderAuthRecordsDTO.java                                 |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwPatrolRecordService.java                       |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/AddNeighborCircleTopicAppDTO.java                             |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveMapper.xml                                                         |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EldersAuthService.java                              |   47 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java                                                           |  125 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthElderliesServiceImpl.java          |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAnswerContentVO.java                          |    4 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationPensionMistakeExcelVO.java                    |   99 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleTopicAdminVO.java                          |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java           |  131 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthStatisticsMapper.xml                                              |   22 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityQuestnaireApi.java                         |  166 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleDO.java                       |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java                                                     |   11 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthHistoryRecordMapper.java                  |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthPensionerMapper.xml                                               |   51 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/MinioUtil.java                                       |  125 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishOperationRecordServiceImpl.java |   53 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoService.java                         |   11 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/PageElderAuthStatisticDTO.java                         |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthRecordDAO.java                            |   53 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireAnswerContentDO.java              |    4 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml                                            |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussDO.java                              |  117 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServerHandler.java                                 |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserInputDAO.java                                              |  119 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/NeighborApi.java                                        |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java              |   57 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/NeighborCircleConstants.java                                            |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthRecordsService.java                     |  117 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java                                                           |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordStatisticExcleVO.java                     |   55 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/CommunityBackstageApplication.java                      |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveRecordMapper.xml                                                   |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthHistoryRecordDOMapper.xml                                         |  120 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthRecordDO.java                       |  133 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleDOMapper.xml                                                |  119 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubDO.java                        |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEldersAuthElderlyServiceImpl.java           |   20 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/config/MinioConfig.java                                                       |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveMapper.java                                |    7 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/SysConfMapper.xml                                                               |    5 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DiscussApi.java                                     |  131 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoDAO.java                                 |    3 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthHistoryRecordMapper.java                   |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordExcleVO.java                                |   73 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthStatisticHeaderVO.java                              |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComMngStructHouseDAO.xml                                                             |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionVO.java                                    |    7 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussCommentVO.java                                   |    3 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/DiscussVoteOptionDTO.java                                    |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysUserInputServiceImpl.java                             |    4 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleAdminDTO.java                             |    3 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComPensionAuthStatisticVO.java                                   |   90 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthElderliesMapper.xml                                                 |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcApiConstants.java                                                           |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDiscussService.java                           |  146 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NeighborApi.java                                                            |   71 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideClassifyDO.java                    |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java                     |  163 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageActWorkGuideDTO.java                                     |    7 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishOperationRecordDO.java             |   89 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/SysConfServiceImpl.java                        |   56 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActPictureVO.java                                       |    8 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserRoleDAO.xml                                                                   |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentUserDOMapper.xml                                            |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthTypeEnum.java                                                   |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishFeedbackMapper.xml                                               |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActRegistMapper.xml                                                       |    8 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveRecordDO.java                        |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMicroWishService.java                         |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthElderlyMapper.xml                                                  |    6 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java                                                         |    4 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussUserDOMapper.xml                                                   |   18 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WorkGuideApi.java                                                           |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthStatisticsService.java                |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/PagePensionAuthStatisticDTO.java                       |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthRecordForCommunityVO.java                        |    1 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthRecordsMapper.xml                                                   |  354 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleAppDTO.java                               |    3 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthUserMapper.java                            |    2 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java                                                    |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthStatisticsServiceImpl.java       |   21 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/pom.xml                                                                                                      |    7 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthStatusEnum.java                                                 |   28 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/bootstrap.yml                                                                        |    4 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/pom.xml                                                                                                            |    7 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveAppletsVO.java                           |  143 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthHistoryRecordDO.java                |  168 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussDTO.java                                        |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActEvaluateDAO.java                               |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordVO.java                                   |  102 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityActivityApi.java                           |   31 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java                                                              |   18 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommunityConvenientApi.java                             |   18 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/DiscussJobHandler.java                                               |   30 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/DiscussApi.java                                                             |   81 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthElderlyDTO.java                                    |    4 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysConfMapper.java                                      |    2 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/bootstrap.yml                                                                             |    4 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideVO.java                                        |    6 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BigScreenStatisticsApi.java                         |   34 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideClassifyVO.java                                |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthStatisticsDAO.java                        |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveSubServiceImpl.java               |   11 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationElderMistakeExcelVO.java                      |  101 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthElderlyDO.java                       |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java                                  |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/DeleteNeighborCircleAppDTO.java                               |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveRecordMapper.java                          |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishDAO.java                                 |  278 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthHistoryRecordServiceImpl.java    |   62 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/SysConfApi.java                                         |   35 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussOptionUserDTO.java                              |    6 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java           |  482 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaiteSubSelectionVO.java                      |    3 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserDOMapper.xml                                                                  |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthUserMapper.xml                                                     |    4 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveSubSelectionMapper.xml                                             |    3 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java               |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityVO.java                                         |   10 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideDetailAppletsVO.java                           |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishFeedbackDO.java                    |   62 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActEvaluateServiceImpl.java              |   43 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/WorkGuideApi.java                                       |   52 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComElderAuthRecordImportExcelListen.java                                   |  228 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java                                           |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java               | 1474 +++
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwDangerReportMapper.xml                                                     |    1 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java                                                      |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishUserDAO.java                             |    9 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubSelectionDO.java               |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionDAO.java                             |    6 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwDangerReportServiceImpl.java              |   52 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/CancelRecordDTO.java                                         |    3 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/MinioConfig.java                                     |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComMngUserTagDAO.xml                                                                 |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpUtils.java                                                              |    4 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishDO.java                            |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveRecordServiceImpl.java            |   44 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/bootstrap.yml                                                                          |    4 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/CacheConfig.java                                                            |   73 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonApi.java                                                            |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleTopicServiceImpl.java      |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordImportMistakeExcelVO.java                   |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java                                           |  938 ++
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordExcleVO.java                              |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActPictureDO.java                           |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthElderliesService.java                   |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWorkGuideClassifyService.java                 |   57 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthElderliesVO.java                                  |   82 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVO.java                                       |    6 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java                 |  235 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java                                              |    9 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComPensionAuthRecordImportExcelListen.java                                 |  240 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysMenuDAO.xml                                                                       |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityApprovalStatusEnum.java                                             |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWorkGuideDOMapper.xml                                                     |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthStatisticsDO.java                   |   78 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthRecordMapper.xml                                                  |  336 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthHistoryRecordService.java             |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthPensionerServiceImpl.java        |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/UserConstants.java                                                      |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoStatisticsVO.java                    |    6 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/RoleDAO.java                                                      |   11 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/ElderAuthStatisticHeaderDTO.java                       |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommonDataApi.java                                      |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActMicroWishOperationRecordApi.java                  |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml                                                |   63 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyAlarmApi.java                            |    4 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleTopicDOMapper.xml                                           |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/WorkGuideApi.java                                       |   75 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireVO.java                                  |    4 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxUtil.java                                                                 |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwDangerReportService.java                       |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IdentityAuthRecordDetailVO.java                               |   60 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/IdentityAuthApi.java                                    |  206 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportVO.java                                      |   55 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/MinioConfig.java                                           |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthRecordDTO.java                                 |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java                                     |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActEvaluateMapper.xml                                                     |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionUserDAO.java                         |   32 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java                      |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveSubListVO.java                           |    3 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IndexApi.java                                                               |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishVO.java                                        |   61 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWorkGuideClassifyMapper.xml                                               |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/HttpConstant.java                                                       |    6 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysRoleMenuDAO.xml                                                                   |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserInputDAO.xml                                                                  |  166 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java                                                               |   26 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioConfig.java                                                         |   28 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/config/MinioUtil.java                                                         |  125 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActivityService.java                          |    8 
 springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml                                                                                                             |    6 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/discuss/ComActDiscussPublishResultDTO.java                   |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComMngUserTagDAO.java                                             |   10 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordVO.java                                     |  126 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireDOMapper.xml                                                    |    1 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthRecordsDO.java                        |  168 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java                  | 1008 ++
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java                                |    4 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveDetailAdminVO.java                       |    3 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java                                       |  262 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserNoticeDAO.java                                             |    7 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActWorkGuideDTO.java                                      |    3 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/GetIdentityEidTokenDTO.java                                  |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java                                                      |  226 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthPensionerVO.java                                |   80 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoClassifyDO.java                    |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java                                      |  367 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthRecordService.java                    |  133 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishDOMapper.xml                                                     |   95 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DiscussApi.java                                         |  189 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java            |  467 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordImportExcelVO.java                          |   62 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideClassifyServiceImpl.java        |  139 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/pom.xml                                                                                                   |    7 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideServiceImpl.java                |   52 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwSafetyWorkEditDTO.java                                  |  122 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/test/java/com/panzhihua/service_community/ServiceCommunityApplicationTests.java                       |   10 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationElderExcelListen.java                                      |  470 +
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishFeedbackMapper.java                      |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationElderExcelVO.java                             |  132 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/discuss/ComActDiscussDetailDTO.java                          |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentDAO.java                            |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWorkGuideDAO.java                                 |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussVO.java                                          |   62 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthElderlyVO.java                                   |    1 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java                           |   61 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java     |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleTopicMapper.java                    |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordImportMistakeExcelVO.java                 |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserNoticeDAO.xml                                                                 |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/WxSubscribeConstants.java                                               |    4 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/NeighborApi.java                                    |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussOptionUserDO.java                    |    5 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaiteSubVO.java                               |   12 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActivityDO.java                             |    9 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussDOMapper.xml                                                       |  260 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWorkGuideClassifyDAO.java                         |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/EventGridMemberBuildingRelationMapper.xml                                            |   18 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComReserveApi.java                                                          |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java                   |    6 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleAppVO.java                                 |    3 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthElderliesDO.java                      |  141 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UserApi.java                                                                |   29 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommonDataApi.java                                      |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationPensionExcelListen.java                                    |  468 +
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveApi.java                                   |   10 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IdentityAuthApi.java                                                        |   86 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/Constants.java                                                          |   25 
 343 files changed, 21,081 insertions(+), 1,939 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml
index c565b22..c4167db 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml
@@ -59,6 +59,12 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-actuator</artifactId>
         </dependency>
+        <!--minio文件存储-->
+        <dependency>
+            <groupId>io.minio</groupId>
+            <artifactId>minio</artifactId>
+            <version>6.0.8</version>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComReserveApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComReserveApi.java
index 4d5a12b..a21f673 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComReserveApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComReserveApi.java
@@ -4,8 +4,13 @@
 import com.panzhihua.common.model.dtos.community.CancelRecordDTO;
 import com.panzhihua.common.model.dtos.community.OperationDetailDTO;
 import com.panzhihua.common.model.dtos.community.PageUserReserveDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.ComActReserveCommitVO;
+import com.panzhihua.common.model.vos.community.ComActReserveIndexVo;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveAppletsVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveDetailVO;
+import com.panzhihua.common.model.vos.community.reserve.ComOperationDetailVO;
 import com.panzhihua.common.service.community.CommunityService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -25,7 +30,7 @@
     @Resource
     private CommunityService communityService;
 
-    @ApiOperation("详情")
+    @ApiOperation(value = "详情",response = ComActReserveDetailVO.class)
     @GetMapping("/detail")
     public R detail(@RequestParam("id") Long id,@RequestParam("recordId") Long recordId,@RequestParam("isBack") Integer isBack){
         return communityService.reserveDetail(id,this.getUserId(),recordId,isBack);
@@ -44,7 +49,7 @@
      * @param pageUserReserveDTO
      * @return
      */
-    @ApiOperation("我的预约/登记")
+    @ApiOperation(value = "我的预约/登记",response = ComActReserveAppletsVO.class)
     @PostMapping("/userReserveList")
     public R userReserveList(@RequestBody PageUserReserveDTO pageUserReserveDTO){
         pageUserReserveDTO.setUserId(this.getUserId());
@@ -56,16 +61,27 @@
     @ApiOperation("取消预约/登记")
     @PostMapping("/cancelReserve")
     public R userCancelReserve(@RequestBody CancelRecordDTO cancelRecordDTO){
+        cancelRecordDTO.setUserId(this.getUserId());
         return communityService.userCancelReserve(cancelRecordDTO);
     }
 
     /**
      * 预约详情操作记录
      */
-    @ApiOperation("预约详情操作记录")
+    @ApiOperation(value = "预约详情操作记录",response = ComOperationDetailVO.class)
     @PostMapping("/detailOperation")
     public R reserveOperation(@RequestBody OperationDetailDTO comActReserveOperationRecordDO){
         comActReserveOperationRecordDO.setUserId(this.getUserId());
         return communityService.reserveOperation(comActReserveOperationRecordDO);
     }
+
+    @ApiOperation(value = "预约登记列表",response = ComActReserveIndexVo.class)
+    @GetMapping("/list")
+    public R list(@RequestParam("communityId") Long communityId){
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if(loginUserInfo != null){
+            communityId = loginUserInfo.getCommunityId();
+        }
+        return communityService.reserveListApplets(communityId);
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java
index d41d5f6..8dd7d12 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java
@@ -13,6 +13,8 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
+import com.panzhihua.applets.config.MinioUtil;
+import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.lang3.RandomUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.redis.core.StringRedisTemplate;
@@ -77,6 +79,8 @@
     private WxMaConfiguration wxMaConfiguration;
     @Resource
     private CommunityService communityService;
+    @Resource
+    private MinioUtil minioUtil;
 
     public static void main(String[] args) {
         // int nextInt = RandomUtils.nextInt(99999, 1000000);
@@ -141,6 +145,20 @@
 
     }
 
+    @ApiOperation(value = "新上传照片接口")
+    @PostMapping(value = "/uploadimages", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImages(@RequestParam MultipartFile file, HttpServletRequest request) {
+        try {
+            String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+            String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension;
+            String imageUrl = minioUtil.upload(file, name);
+            return R.ok(imageUrl);
+        } catch (Exception e) {
+            log.error("上传照片失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
     @ApiOperation(value = "发送验证码")
     @PostMapping(value = "smscode")
     public R smscode(@RequestBody UserPhoneVO userPhoneVO) {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java
index 1cb382a..ebf96d2 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java
@@ -108,20 +108,30 @@
         if (loginUserInfo != null) {
             userId = loginUserInfo.getUserId();
         }
-        return communityService.detailActivity(id, userId);
+        return communityService.detailActivity(id, userId,null,null);
+    }
+
+    @ApiOperation(value = "分页查询活动评价记录", response = ComActActEvaluateVO.class)
+    @PostMapping("evaluate/page")
+    public R pageActivityEvaluates(@RequestBody ComActActEvaluateVO comActActEvaluateVO) {
+        return communityService.pageActivityEvaluates(comActActEvaluateVO);
     }
 
     @ApiOperation(value = "社区活动/志愿者活动签到")
     @PostMapping("activity/sign-in")
     public R activitySignIn(@RequestBody ComActActRegistVO comActActRegistVO) {
-        comActActRegistVO.setUserId(this.getUserId());
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        comActActRegistVO.setUserId(loginUserInfo.getUserId());
+        comActActRegistVO.setIsVolunteer(loginUserInfo.getIsVolunteer());
         return communityService.activitySignIn(comActActRegistVO);
     }
 
     @ApiOperation(value = "社区活动/志愿者活动评价")
     @PostMapping("activity/evaluate")
     public R activityEvaluate(@RequestBody ComActActEvaluateVO comActActEvaluateVO) {
-        comActActEvaluateVO.setUserId(this.getUserId());
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        comActActEvaluateVO.setUserId(loginUserInfo.getUserId());
+        comActActEvaluateVO.setIsVolunteer(loginUserInfo.getIsVolunteer());
         return communityService.activityEvaluate(comActActEvaluateVO);
     }
 
@@ -134,7 +144,7 @@
         signactivityVO.setUserId(userId);
         R r = communityService.signActivity(signactivityVO);
         if (R.isOk(r) && signactivityVO.getType().intValue() == 1) {
-            R r2 = communityService.detailActivity(activityId, userId);
+            R r2 = communityService.detailActivity(activityId, userId,null,null);
             ComActActivityVO comActActivityVO =
                 JSONObject.parseObject(JSONObject.toJSONString(r2.getData()), ComActActivityVO.class);
             SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/DiscussApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/DiscussApi.java
index b5bc7dc..6078cc6 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/DiscussApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/DiscussApi.java
@@ -1,27 +1,47 @@
 package com.panzhihua.applets.api;
 
+import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 import javax.annotation.Resource;
+import javax.validation.Valid;
 
 import org.springframework.util.ObjectUtils;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 import com.panzhihua.applets.weixin.CheckService;
 import com.panzhihua.common.controller.BaseController;
-import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.dtos.community.ComActDiscussCommentDTO;
+import com.panzhihua.common.model.dtos.community.ComActDiscussCommentUserDTO;
+import com.panzhihua.common.model.dtos.community.ComActDiscussDTO;
+import com.panzhihua.common.model.dtos.community.ComActDiscussOptionDTO;
+import com.panzhihua.common.model.dtos.community.ComActDiscussOptionUserDTO;
+import com.panzhihua.common.model.dtos.community.ComActDiscussUserDTO;
+import com.panzhihua.common.model.dtos.community.DiscussVoteOptionDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDiscussCommentDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDiscussDTO;
 import com.panzhihua.common.model.dtos.community.integral.admin.AddComActIntegralUserDTO;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.ComActDiscussCommentVO;
 import com.panzhihua.common.model.vos.community.ComActDiscussVO;
 import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.DateUtils;
 import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.common.validated.PutGroup;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
 
 /**
@@ -58,6 +78,11 @@
             if (ObjectUtils.isEmpty(discussOptions)) {
                 return R.fail("选项不能为空");
             }
+            if (discussOptions.size() < 2) {
+                return R.fail("请至少设置两个投票选项");
+            }
+            //设置投票开始时间 nowDate
+            comActDiscussDTO.setStartTime(DateUtils.format(new Date(), DateUtils.ymdhms_format));
         }
         String address = comActDiscussDTO.getAddress();
         if (ObjectUtils.isEmpty(address)) {
@@ -70,12 +95,17 @@
         Long communityId = loginUserInfo.getCommunityId();
         comActDiscussDTO.setUserId(userId);
         comActDiscussDTO.setCommunityId(communityId);
+        comActDiscussDTO.setIsApplets(true);
+        comActDiscussDTO.setLoginUserInfo(loginUserInfo);
         return communityService.addDiscuss(comActDiscussDTO);
     }
 
     @ApiOperation(value = "一起议-分页查询", response = ComActDiscussVO.class)
     @PostMapping("pagediscuss")
     public R pageDiscuss(@RequestBody PageComActDiscussDTO pageComActDiscussDTO) {
+        if (Objects.isNull(pageComActDiscussDTO.getType())) {
+            return R.fail("查询类型不能为空");
+        }
         LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
         if (loginUserInfo != null) {
             pageComActDiscussDTO.setCommunityId(loginUserInfo.getCommunityId());
@@ -168,21 +198,48 @@
     }
 
     @ApiOperation(value = "一起议-投票")
-    @GetMapping("discussoptionuser")
-    @ApiImplicitParam(name = "id", value = "一起议选项主键", required = true)
-    public R addDiscussOptionUser(@RequestParam("id") Long id) {
-        if (null == id || 0 == id) {
+    @PostMapping("discussoptionuser")
+    public R addDiscussOptionUser(@RequestBody @Valid DiscussVoteOptionDTO discussVoteOptionDTO) {
+        List<Long> optionIds = discussVoteOptionDTO.getOptionIds();
+        if (optionIds.isEmpty()) {
             return R.fail("选项主键不能为空");
         }
         ComActDiscussOptionUserDTO comActDiscussOptionUserDTO = new ComActDiscussOptionUserDTO();
-        comActDiscussOptionUserDTO.setDiscussOptionId(id);
+        comActDiscussOptionUserDTO.setDiscussOptionIds(optionIds);
         comActDiscussOptionUserDTO.setUserId(this.getUserId());
-        // 议事投票计算积分
-        AddComActIntegralUserDTO integralUserDTO = new AddComActIntegralUserDTO(id,
-            AddComActIntegralUserDTO.integralType.cyystp, this.getCommunityId(), this.getUserId());
-        integralUserDTO.setIsComment(2);
-        communityService.addIntegralTradeAdmin(integralUserDTO);
+        optionIds.forEach(optionId -> {
+            // 议事投票计算积分
+            AddComActIntegralUserDTO integralUserDTO = new AddComActIntegralUserDTO(optionId,
+                    AddComActIntegralUserDTO.integralType.cyystp, this.getCommunityId(), this.getUserId());
+            integralUserDTO.setIsComment(2);
+            communityService.addIntegralTradeAdmin(integralUserDTO);
+        });
         return communityService.addDiscussOptionUser(comActDiscussOptionUserDTO);
     }
 
+    @ApiOperation(value = "一起议-增加浏览量")
+    @PostMapping("discuss/increase-view-num")
+    public void increaseViewNum(@RequestParam("discussId")
+                             @ApiParam(value = "一起议主键id", required = true)
+                             Long discussId) {
+        communityService.increaseViewNum(discussId);
+    }
+
+    @ApiOperation(value = "一起议-公布/编辑投票结果")
+    @PostMapping("discuss/edit-result")
+    public R editDiscussResult(@RequestBody @Validated(PutGroup.class) ComActDiscussDTO comActDiscussDTO) {
+        comActDiscussDTO.setUserId(this.getUserId());
+        return communityService.editDiscussResult(comActDiscussDTO);
+    }
+
+    @ApiOperation(value = "一起议-获取是否有发布权限", response = Boolean.class)
+    @GetMapping("discuss/permissions")
+    public R getDiscussPermissions() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        ComActDiscussDTO comActDiscussDTO = new ComActDiscussDTO();
+        comActDiscussDTO.setLoginUserInfo(loginUserInfo);
+        comActDiscussDTO.setIsApplets(true);
+        comActDiscussDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.getDiscussPermissions(comActDiscussDTO);
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IdentityAuthApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IdentityAuthApi.java
new file mode 100644
index 0000000..ee23999
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IdentityAuthApi.java
@@ -0,0 +1,86 @@
+package com.panzhihua.applets.api;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO;
+import com.panzhihua.common.model.dtos.community.GetIdentityEidTokenDTO;
+import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: IdentityAuthApi 身份认证相关API
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 小程序端身份认证相关
+ * @author: hans
+ * @date: 2021/09/01 16:00
+ */
+@Slf4j
+@RestController
+@RequestMapping("/identity-auth")
+@Api(tags = {"身份认证"})
+public class IdentityAuthApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "查询社区身份认证方式", response = R.class)
+    @GetMapping("/mode")
+    public R getIdentityAuthMode(@RequestParam(value = "communityId")
+                              @ApiParam(value = "社区id", required = true)
+                              Long communityId,
+                              @RequestParam(value = "identityAuthType")
+                              @ApiParam(value = "身份认证类型", required = true)
+                              Integer identityAuthType) {
+        return communityService.getIdentityAuthMode(communityId, identityAuthType);
+    }
+
+    @ApiOperation(value = "身份认证获取EidToken接口")
+    @PostMapping("/getEidToken")
+    public R getEidToken(@RequestBody @Valid GetIdentityEidTokenDTO getIdentityEidTokenDTO) {
+        return communityService.getEidToken(getIdentityEidTokenDTO);
+    }
+
+    @ApiOperation(value = "新增身份认证")
+    @PostMapping("/add")
+    public R addIdentityAuth(@RequestBody @Valid AddIdentityAuthDTO addIdentityAuthDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        addIdentityAuthDTO.setSubmitUserId(loginUserInfo.getUserId());
+        addIdentityAuthDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.addIdentityAuth(addIdentityAuthDTO);
+    }
+
+    @ApiOperation(value = "分页查询身份认证记录", response = IdentityAuthRecordDetailVO.class)
+    @PostMapping("/record/page")
+    public R queryRecordWithPage(@RequestBody @Valid PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO) {
+        pageIdentityAuthRecordDTO.setSubmitUserId(this.getUserId());
+        return communityService.queryRecordWithPage(pageIdentityAuthRecordDTO);
+    }
+
+    @ApiOperation(value = "获取身份认证详情", response = IdentityAuthRecordDetailVO.class)
+    @GetMapping("/detail")
+    public R retrieveIdentityAuthDetail(@RequestParam("authType")
+                                        @ApiParam(value = "身份认证类型(1.高龄认证 2.养老认证)", required = true, allowableValues = "1,2", example = "1")
+                                        Integer authType,
+                                        @RequestParam("identityAuthId")
+                                        @ApiParam(value = "身份认证id", required = true, example = "1")
+                                        Long identityAuthId) {
+        return communityService.retrieveIdentityAuthDetail(authType, identityAuthId);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IndexApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IndexApi.java
index 11c5138..a03b347 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IndexApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IndexApi.java
@@ -155,7 +155,7 @@
         }
         comActMicroWishVO.setIsApplets(1);
         comActMicroWishVO.setIsPageMyWish(null);
-        return communityService.pageMicroWish(comActMicroWishVO);
+        return communityService.pageMicroWishApplets(comActMicroWishVO);
     }
 
     @ApiOperation("发布微心愿")
@@ -355,6 +355,18 @@
         return communityService.getUserReward(userId, communityId);
     }
 
+    @ApiOperation(value = "获取首页弹窗接口", response = ComActEasyPhotoRewardVO.class)
+    @GetMapping("getUserRewards")
+    public R getUserRewards(@RequestParam("communityId") Long communityId) {
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+            communityId = loginUserInfo.getCommunityId();
+        }
+        return communityService.getUserRewards(userId, communityId);
+    }
+
     @ApiOperation(value = "读取用户随手拍奖励")
     @PostMapping("readUserReward")
     public R readUserReward() {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NeighborApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NeighborApi.java
index 4a37f51..3df433d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NeighborApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NeighborApi.java
@@ -1,5 +1,7 @@
 package com.panzhihua.applets.api;
 
+import com.panzhihua.applets.weixin.CheckService;
+import com.panzhihua.common.constants.NeighborCircleConstants;
 import javax.annotation.Resource;
 
 import org.springframework.web.bind.annotation.*;
@@ -32,6 +34,8 @@
 
     @Resource
     private CommunityService communityService;
+    @Resource
+    private CheckService checkService;
 
     @ApiOperation(value = "分页查询邻里圈列表", response = ComActNeighborCircleAppVO.class)
     @PostMapping("pageApp")
@@ -49,16 +53,43 @@
     public R addNeighborByApp(@RequestBody AddComActNeighborCircleAppDTO addNeighborCircleAppDTO) {
         LoginUserInfoVO loginUser = this.getLoginUserInfo();
         Long userId = loginUser.getUserId();
-        if (userId == null) {
+        Long communityId = loginUser.getCommunityId();
+        if(userId == null){
             return R.fail("请重新登录");
         }
         addNeighborCircleAppDTO.setUserId(userId);
         if (StringUtils.isNotEmpty(loginUser.getPhone())) {
             addNeighborCircleAppDTO.setPhone(this.getLoginUserInfo().getPhone());
         }
-        if (loginUser.getCommunityId() != null) {
-            addNeighborCircleAppDTO.setCommunityId(loginUser.getCommunityId());
+        if(communityId != null){
+            addNeighborCircleAppDTO.setCommunityId(communityId);
         }
+
+        //查询社区自动审核是否开着
+        String key = NeighborCircleConstants.NEIGHBOR_CIRCLE_AUTO_EXAMINE;
+        R isOk = communityService.getSysConfValue(key + communityId,communityId);
+        if(R.isOk(isOk)){
+            if(isOk.getData() != null){
+                String value = isOk.getData().toString();
+                if(value.equals("1")){
+                    addNeighborCircleAppDTO.setIsExamine(AddComActNeighborCircleAppDTO.isExamine.no);
+                    String msg = addNeighborCircleAppDTO.getReleaseContent();
+                    if (checkService.checkMessage(msg)) {
+                        addNeighborCircleAppDTO.setWxExamineResult(AddComActNeighborCircleAppDTO.isExamine.yes);
+                    }else{
+                        addNeighborCircleAppDTO.setWxExamineResult(AddComActNeighborCircleAppDTO.isExamine.no);
+                    }
+                }else{
+                    addNeighborCircleAppDTO.setIsExamine(AddComActNeighborCircleAppDTO.isExamine.yes);
+                }
+            }else{
+                communityService.addSysConfValue(key + communityId,communityId,"社区邻里圈自动审核参数","1");
+                addNeighborCircleAppDTO.setIsExamine(AddComActNeighborCircleAppDTO.isExamine.no);
+            }
+        }else{
+            addNeighborCircleAppDTO.setIsExamine(AddComActNeighborCircleAppDTO.isExamine.yes);
+        }
+
         return communityService.addNeighborByApp(addNeighborCircleAppDTO);
     }
 
@@ -175,11 +206,41 @@
 
     @ApiOperation(value = "查询社区邻里圈话题列表", response = ComActNeighborCircleTopicAppVO.class)
     @GetMapping("topic/list")
-    public R getNeighborTopicByApp(@RequestParam("communityId") Long communityId) {
+    public R getNeighborTopicByApp(@RequestParam("communityId") Long communityId
+            ,@RequestParam(value = "isZero",defaultValue = "2",required = false) Integer isZero
+            ,@RequestParam(value = "name",defaultValue = "",required = false) String name) {
         LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
         if (loginUserInfo != null) {
             communityId = loginUserInfo.getCommunityId();
         }
-        return communityService.getNeighborTopicByApp(communityId);
+        if(isZero == null){
+            isZero = 2;
+        }
+        return communityService.getNeighborTopicByApp(communityId,isZero,name);
+    }
+
+    @ApiOperation(value = "用户新增邻里圈话题")
+    @PostMapping("topic/add")
+    public R addNeighborTopicByApp(@RequestBody AddNeighborCircleTopicAppDTO circleTopicAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if(loginUserInfo == null){
+            return R.fail(401,"请先登录");
+        }
+        circleTopicAppDTO.setUserId(loginUserInfo.getUserId());
+        circleTopicAppDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.addNeighborTopicByApp(circleTopicAppDTO);
+    }
+
+    @ApiOperation(value = "用户删除邻里圈")
+    @PostMapping("delete")
+    public R deleteNeighborByApp(@RequestBody DeleteNeighborCircleAppDTO circleTopicAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if(loginUserInfo == null){
+            return R.fail(401,"请先登录");
+        }
+        circleTopicAppDTO.setUserId(loginUserInfo.getUserId());
+        circleTopicAppDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.deleteNeighborByApp(circleTopicAppDTO);
     }
 }
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UserApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UserApi.java
index baaf378..db78ba4 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UserApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UserApi.java
@@ -1,17 +1,17 @@
 package com.panzhihua.applets.api;
 
+import static java.util.stream.Collectors.toList;
+
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
 import java.util.Optional;
-import java.util.TreeSet;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 
-import com.panzhihua.common.model.vos.community.ComActActEvaluateVO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.util.ObjectUtils;
@@ -36,6 +36,7 @@
 import com.panzhihua.common.model.dtos.user.SysUserFeedbackDTO;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActActEvaluateVO;
 import com.panzhihua.common.model.vos.community.ComActActRegistVO;
 import com.panzhihua.common.model.vos.community.ComActActivityVO;
 import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO;
@@ -275,18 +276,24 @@
         if (!ObjectUtils.isEmpty(comActActivityVOS)) {
             List<ComActActivityVO> collect = comActActivityVOS.stream()
                 .sorted(Comparator.comparing(ComActActivityVO::getSingDate).reversed()).collect(Collectors.toList());
-            //当前用户最近签到时间
+            //当前用户签到记录列表
             R r2 = communityService.listSignInActivity(userId);
             if (R.isOk(r2) && !ObjectUtils.isEmpty(r2.getData())) {
-                ArrayList<ComActActRegistVO> comActActRegistVOS = JSONArray.parseArray(JSONArray.toJSONString(r2.getData()), ComActActRegistVO.class).stream()
-                        .sorted(Comparator.comparing(ComActActRegistVO::getCreateAt).reversed())
-                        .collect(Collectors.collectingAndThen(Collectors.toCollection(() ->
-                                new TreeSet<>(Comparator.comparing(f -> String.join("", f.getUserId().toString(), f.getActivityId().toString())))), ArrayList::new));
-                collect.forEach(comActActivityVO -> comActActRegistVOS.forEach(activitySignInVO -> {
-                    if (comActActivityVO.getId().equals(activitySignInVO.getActivityId())) {
-                        comActActivityVO.setActivitySignInDate(activitySignInVO.getCreateAt());
+                List<ComActActRegistVO> comActActRegistVOS = JSONArray.parseArray(JSONArray.toJSONString(r2.getData()), ComActActRegistVO.class).stream()
+                        .sorted(Comparator.comparing(ComActActRegistVO::getCreateAt).reversed()).collect(toList());
+                collect.forEach(comActActivityVO -> {
+                    ArrayList<ComActActRegistVO> currentList = new ArrayList<>();
+                    comActActRegistVOS.forEach(activitySignInVO -> {
+                        if (comActActivityVO.getId().equals(activitySignInVO.getActivityId())) {
+                            currentList.add(activitySignInVO);
+                        }
+                    });
+                    if (currentList.size() > 10) {
+                        comActActivityVO.setActivitySignInList(currentList.subList(0, 10));
+                    } else {
+                        comActActivityVO.setActivitySignInList(currentList);
                     }
-                }));
+                });
             }
             //当前用户活动评分
             R r3 = communityService.listEvaluate(userId);
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WorkGuideApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WorkGuideApi.java
index 1476310..bb6f0ba 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WorkGuideApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WorkGuideApi.java
@@ -2,6 +2,8 @@
 
 import javax.annotation.Resource;
 
+import com.panzhihua.common.model.vos.community.ComActWorkGuideAppletsVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideDetailAppletsVO;
 import org.springframework.web.bind.annotation.*;
 
 import com.panzhihua.common.controller.BaseController;
@@ -43,4 +45,16 @@
         }
         return communityService.detailWorkGuide(workGuideId, communityId);
     }
+
+    @ApiOperation(value = "办事指南列表-按分类查询", response = ComActWorkGuideAppletsVO.class)
+    @PostMapping("list")
+    public R listWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO) {
+        return communityService.listWorkGuide(pageActWorkGuideDTO);
+    }
+
+    @ApiOperation(value = "办事指南列表-按分类查询", response = ComActWorkGuideDetailAppletsVO.class)
+    @GetMapping("list/classify")
+    public R listWorkGuideByClassifyId(@RequestParam("classifyId") Long classifyId) {
+        return communityService.listWorkGuideByClassifyId(classifyId);
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java
index 226de90..6cdbafc 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java
@@ -9,6 +9,7 @@
 
 import javax.annotation.Resource;
 
+import com.panzhihua.common.api.LcApiConstants;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.redis.core.ValueOperations;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -157,6 +158,7 @@
     public R pageDiscuss() throws Exception {
         WxOfficialApi officialApi = new WxOfficialApi();
 
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
         List<String> tokenList = new ArrayList<>();
         if (!appidList.isEmpty()) {
             for (int i = 0; i < appidList.size(); i++) {
@@ -168,10 +170,15 @@
                 }
             }
         }
-
         List<JSONObject> resultList = new ArrayList<>();
+        Boolean newsListKey = stringRedisTemplate.hasKey(UserConstants.NEWS_LIST);
+        if(newsListKey != null && newsListKey){
+            String json = valueOperations.get(UserConstants.NEWS_LIST);
+            resultList = JSON.parseArray(json,JSONObject.class);
+            return R.ok(resultList);
+        }
         if (!tokenList.isEmpty()) {
-            tokenList.forEach(token -> {
+            for (String token:tokenList) {
                 try {
                     String url = "https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=" + token;
                     String result = getActicle(url);
@@ -185,13 +192,12 @@
                                 String newsId = object.getString("media_id");
                                 JSONObject contentJson = JSON.parseObject(object.getString("content"));
                                 List<JSONObject> newsItemList =
-                                    JSON.parseArray(contentJson.getString("news_item"), JSONObject.class);
+                                        JSON.parseArray(contentJson.getString("news_item"), JSONObject.class);
                                 String newsUrl = newsItemList.get(0).getString("url");
                                 newsItemList.get(0).put("news_id", newsId);
                                 contentJson.put("news_item", newsItemList);
                                 object.put("content", contentJson);
 
-                                ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
                                 valueOperations.set(UserConstants.NEWS_ID + newsId, newsUrl + "", 2, TimeUnit.DAYS);
                             }
                         }
@@ -201,7 +207,8 @@
                 } catch (Exception e) {
                     log.error("通过token获取文章列表失败,错误原因:" + e.getMessage());
                 }
-            });
+                valueOperations.set(UserConstants.NEWS_LIST, resultList.toString(), 12, TimeUnit.HOURS);
+            }
         }
         return R.ok(resultList);
     }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioConfig.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioConfig.java
new file mode 100644
index 0000000..829f684
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioConfig.java
@@ -0,0 +1,28 @@
+package com.panzhihua.applets.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * program 攀枝花智慧社区项目 description minio存储信息配置
+ *
+ * @author manailin Date 2021-08-19 15:30
+ **/
+@Data
+@ConfigurationProperties(prefix = "minio")
+public class MinioConfig {
+
+    private String host;
+
+    private String accessKey;
+
+    private String secretKey;
+
+    private String url;
+
+    private String bucket;
+
+    private String aliasName;
+
+    private String aliasPCName;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java
new file mode 100644
index 0000000..2753796
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java
@@ -0,0 +1,125 @@
+package com.panzhihua.applets.config;
+
+import io.minio.MinioClient;
+import io.minio.ObjectStat;
+import org.apache.commons.io.IOUtils;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.util.UUID;
+
+/**
+ * program 攀枝花智慧社区项目 description minio工具类
+ *
+ * @author manailin Date 2021-08-19 15:30
+ **/
+@Component
+@EnableConfigurationProperties(MinioConfig.class)
+public class MinioUtil {
+
+    @Resource
+    private MinioConfig minioProperties;
+
+    public static byte[] toByteArray(InputStream input) throws IOException {
+        ByteArrayOutputStream output = new ByteArrayOutputStream();
+        byte[] buffer = new byte[4096];
+        int n = 0;
+        while (-1 != (n = input.read(buffer))) {
+            output.write(buffer, 0, n);
+        }
+        return output.toByteArray();
+    }
+
+    /**
+     * 文件上传
+     *
+     * @param file
+     *            要上传的文件
+     * @return
+     */
+    public String upload(MultipartFile file, String name) {
+        if (null != file) {
+            try {
+                UUID uuid = UUID.randomUUID();
+                StringBuilder s = new StringBuilder();
+                s.append(uuid.toString().replace("-", "")).append("/");
+                MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(),
+                    minioProperties.getSecretKey());
+                // bucket 不存在,创建
+                if (!minioClient.bucketExists(minioProperties.getBucket())) {
+                    minioClient.makeBucket(minioProperties.getBucket());
+                }
+                // 得到文件流
+                InputStream input = file.getInputStream();
+                // 文件名
+                // String fileName = uuid + "/images." + FilenameUtils.getExtension(file.getOriginalFilename());
+                String fileName = s.append(name).toString();
+                String contentType = file.getContentType();
+                minioClient.putObject(minioProperties.getBucket(), fileName, input, contentType);
+                StringBuilder fileUrl = new StringBuilder(minioProperties.getUrl());
+                String url = fileUrl.append(fileName).toString();
+                return url;
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 文件下载
+     *
+     * @param response
+     * @param url
+     */
+    public void download(HttpServletResponse response, String url) {
+        // 从链接中得到文件名
+        String replace = url.replace(minioProperties.getBucket() + "/", "#");
+        String fileName = replace.split("#")[1];
+        InputStream inputStream;
+        try {
+            MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(),
+                minioProperties.getSecretKey());
+            ObjectStat stat = minioClient.statObject(minioProperties.getBucket(), fileName);
+            inputStream = minioClient.getObject(minioProperties.getBucket(), fileName);
+            response.setContentType(stat.contentType());
+            response.setCharacterEncoding("UTF-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
+            IOUtils.copy(inputStream, response.getOutputStream());
+            inputStream.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    /**
+     * 文件下载
+     *
+     * @param response
+     * @param url
+     */
+    public byte[] getBytes(HttpServletResponse response, String url) {
+        // 从链接中得到文件名
+        String replace = url.replace(minioProperties.getBucket() + "/", "#");
+        String fileName = replace.split("#")[1];
+        InputStream inputStream;
+        byte[] bytes = new byte[0];
+        try {
+            MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(),
+                minioProperties.getSecretKey());
+            inputStream = minioClient.getObject(minioProperties.getBucket(), fileName);
+            bytes = toByteArray(inputStream);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return bytes;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/bootstrap.yml
index 4784daa..6e1590b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/bootstrap.yml
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/bootstrap.yml
@@ -12,8 +12,8 @@
     active: ${ENV:dev}
   servlet:
     multipart:
-      max-file-size: 10MB
-      max-request-size: 10MB
+      max-file-size: 200MB
+      max-request-size: 200MB
 
 server:
   max-http-header-size: 10MB
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/pom.xml
index 7adbc20..315aae0 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/pom.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/pom.xml
@@ -58,6 +58,13 @@
             <artifactId>spring-boot-starter-actuator</artifactId>
         </dependency>
 
+        <!--minio文件存储-->
+        <dependency>
+            <groupId>io.minio</groupId>
+            <artifactId>minio</artifactId>
+            <version>6.0.8</version>
+        </dependency>
+
     </dependencies>
 
     <build>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/AdvertisingManagementApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/AdvertisingManagementApi.java
index 60143c2..4488886 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/AdvertisingManagementApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/AdvertisingManagementApi.java
@@ -6,6 +6,8 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
+import com.panzhihua.applets_backstage.config.MinioUtil;
+import org.apache.commons.io.FilenameUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.util.ObjectUtils;
 import org.springframework.validation.annotation.Validated;
@@ -55,6 +57,9 @@
     private int port;
     @Value("${ftp.url}")
     private String url;
+
+    @Resource
+    private MinioUtil minioUtil;
 
     @ApiOperation("新增广告")
     @PostMapping("advertisement")
@@ -147,6 +152,20 @@
 
     }
 
+    @ApiOperation(value = "新上传照片接口")
+    @PostMapping(value = "/uploadimages", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImages(@RequestParam MultipartFile file, HttpServletRequest request) {
+        try {
+            String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+            String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension;
+            String imageUrl = minioUtil.upload(file, name);
+            return R.ok(imageUrl);
+        } catch (Exception e) {
+            log.error("上传照片失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
     @ApiOperation(value = "删除广告")
     @DeleteMapping("advertisement")
     public R deleteAdvertisement(@RequestParam("id") Long id) {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommonDataApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommonDataApi.java
index 43881d5..1a0c390 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommonDataApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommonDataApi.java
@@ -2,6 +2,9 @@
 
 import javax.annotation.Resource;
 
+import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
+import com.panzhihua.common.model.vos.user.ComMngTagVO;
+import com.panzhihua.common.service.user.UserService;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 
@@ -31,6 +34,8 @@
 
     @Resource
     private CommunityService communityService;
+    @Resource
+    private UserService userService;
 
     @Value("${excel.convenientUrl}")
     private String excelConvenientUrl = "http://panzhihua.nhys.cdnhxx.com/web/bianminfuwudaoru.xlsx";
@@ -76,4 +81,38 @@
         required = true) @RequestParam(value = "provinceAdcode") Integer provinceAdcode) {
         return communityService.getCityTreeByProvinceCode(provinceAdcode);
     }
+
+    @ApiOperation(value = "特殊群体/分页查询标签列表", response = ComMngTagVO.class)
+    @PostMapping("/special/tags/page")
+    public R specialInputUserTags(@RequestBody PageInputUserDTO comMngUserTagDTO) {
+//        Long communityId = this.getCommunityId();
+//        comMngUserTagDTO.setCommunityId(communityId);
+        return userService.specialInputUserTags(comMngUserTagDTO);
+    }
+
+    /**
+     * 新增或修改特殊群体标签
+     *
+     * @param comMngTagVO
+     * @return
+     */
+    @ApiOperation(value = "特殊群体/新增或修改标签")
+    @PostMapping("/special/tags/save")
+    R saveSpecialInputUserTags(@RequestBody ComMngTagVO comMngTagVO) {
+//        Long communityId = this.getLoginUserInfo().getCommunityId();
+//        comMngTagVO.setCommunityId(communityId);
+        return userService.saveSpecialInputUserTags(comMngTagVO);
+    }
+
+    /**
+     * 删除特殊群体标签
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "特殊群体/删除标签")
+    @DeleteMapping("/special/tags/delete")
+    R deleteSpecialInputUserTags(@RequestParam(value = "id") Long id) {
+        return userService.deleteSpecialInputUserTags(id);
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommunityConvenientApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommunityConvenientApi.java
index 2cee082..41d26a8 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommunityConvenientApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommunityConvenientApi.java
@@ -8,6 +8,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.panzhihua.applets_backstage.config.MinioUtil;
 import org.apache.commons.io.FilenameUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
@@ -42,6 +43,9 @@
 
     @Resource
     private CommunityService communityService;
+
+    @Resource
+    private MinioUtil minioUtil;
 
     @Value("${excel.convenientUrl}")
     private String excelConvenientUrl = "http://panzhihua.nhys.cdnhxx.com/web/bianminfuwudaoru.xlsx";
@@ -192,6 +196,20 @@
         }
     }
 
+    @ApiOperation(value = "新上传照片接口")
+    @PostMapping(value = "/upload/files", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImages(@RequestParam MultipartFile file, HttpServletRequest request) {
+        try {
+            String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+            String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension;
+            String imageUrl = minioUtil.upload(file, name);
+            return R.ok(imageUrl);
+        } catch (Exception e) {
+            log.error("上传照片失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
     @ApiOperation(value = "excel导入便民服务")
     @PostMapping(value = "/serve/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
     public R downloadTemplate(@RequestParam MultipartFile file, HttpServletRequest request) {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/WorkGuideApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/WorkGuideApi.java
index 1e0f7df..2d3e121 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/WorkGuideApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/WorkGuideApi.java
@@ -2,6 +2,7 @@
 
 import javax.annotation.Resource;
 
+import com.panzhihua.common.model.vos.community.ComActWorkGuideClassifyVO;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -60,4 +61,55 @@
         return communityService.delectWorkGuide(workGuideId);
     }
 
+    /**
+     * 分页查询办事指南-分类管理 pageWorkGuideClassify  分页查询办事指南-分类管理
+     * @param    comActWorkGuideClassifyVO   查询参数
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @ApiOperation(value = "办事指南分类_分页查询", response = ComActWorkGuideClassifyVO.class)
+    @PostMapping("classify/apage")
+    public R pageWorkGuideClassify(@RequestBody ComActWorkGuideClassifyVO comActWorkGuideClassifyVO) {
+        return communityService.pageWorkGuideClassify(comActWorkGuideClassifyVO);
+    }
+
+    /**
+     * 办事指南-分类管理新增或修改  addWorkGuideClassify  办事指南-分类管理新增或修改
+     * @param    comActWorkGuideClassifyVO   新增或修改参数
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @ApiOperation(value = "办事指南分类_新增或修改")
+    @PostMapping("classify/add")
+    public R addWorkGuideClassify(@RequestBody ComActWorkGuideClassifyVO comActWorkGuideClassifyVO) {
+        return communityService.addWorkGuideClassify(comActWorkGuideClassifyVO);
+    }
+
+    /**
+     * 办事指南-分类管理删除  deleteWorkGuideClassify  办事指南-分类管理删除
+     * @param    workGuideClassifyId    办事指南-分类管理id
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @ApiOperation(value = "办事指南分类_删除")
+    @GetMapping("classify/delete")
+    public R deleteWorkGuideClassify(@RequestParam("workGuideClassifyId") Long workGuideClassifyId) {
+        return communityService.deleteWorkGuideClassify(workGuideClassifyId);
+    }
+
+    /**
+     * 办事指南-分类管理列表查询  getWorkGuideClassifyList  办事指南-分类管理列表查询
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @ApiOperation(value = "办事指南分类_列表查询")
+    @GetMapping("classify/getList")
+    public R getWorkGuideClassifyList() {
+        return communityService.getWorkGuideClassifyList();
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/MinioConfig.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/MinioConfig.java
new file mode 100644
index 0000000..b10c056
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/MinioConfig.java
@@ -0,0 +1,28 @@
+package com.panzhihua.applets_backstage.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * program 攀枝花智慧社区项目 description minio存储信息配置
+ *
+ * @author manailin Date 2021-08-19 15:30
+ **/
+@Data
+@ConfigurationProperties(prefix = "minio")
+public class MinioConfig {
+
+    private String host;
+
+    private String accessKey;
+
+    private String secretKey;
+
+    private String url;
+
+    private String bucket;
+
+    private String aliasName;
+
+    private String aliasPCName;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/MinioUtil.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/MinioUtil.java
new file mode 100644
index 0000000..68ac658
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/MinioUtil.java
@@ -0,0 +1,125 @@
+package com.panzhihua.applets_backstage.config;
+
+import io.minio.MinioClient;
+import io.minio.ObjectStat;
+import org.apache.commons.io.IOUtils;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.util.UUID;
+
+/**
+ * program 攀枝花智慧社区项目 description minio工具类
+ *
+ * @author manailin Date 2021-08-19 15:30
+ **/
+@Component
+@EnableConfigurationProperties(MinioConfig.class)
+public class MinioUtil {
+
+    @Resource
+    private MinioConfig minioProperties;
+
+    public static byte[] toByteArray(InputStream input) throws IOException {
+        ByteArrayOutputStream output = new ByteArrayOutputStream();
+        byte[] buffer = new byte[4096];
+        int n = 0;
+        while (-1 != (n = input.read(buffer))) {
+            output.write(buffer, 0, n);
+        }
+        return output.toByteArray();
+    }
+
+    /**
+     * 文件上传
+     *
+     * @param file
+     *            要上传的文件
+     * @return
+     */
+    public String upload(MultipartFile file, String name) {
+        if (null != file) {
+            try {
+                UUID uuid = UUID.randomUUID();
+                StringBuilder s = new StringBuilder();
+                s.append(uuid.toString().replace("-", "")).append("/");
+                MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(),
+                    minioProperties.getSecretKey());
+                // bucket 不存在,创建
+                if (!minioClient.bucketExists(minioProperties.getBucket())) {
+                    minioClient.makeBucket(minioProperties.getBucket());
+                }
+                // 得到文件流
+                InputStream input = file.getInputStream();
+                // 文件名
+                // String fileName = uuid + "/images." + FilenameUtils.getExtension(file.getOriginalFilename());
+                String fileName = s.append(name).toString();
+                String contentType = file.getContentType();
+                minioClient.putObject(minioProperties.getBucket(), fileName, input, contentType);
+                StringBuilder fileUrl = new StringBuilder(minioProperties.getUrl());
+                String url = fileUrl.append(fileName).toString();
+                return url;
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 文件下载
+     *
+     * @param response
+     * @param url
+     */
+    public void download(HttpServletResponse response, String url) {
+        // 从链接中得到文件名
+        String replace = url.replace(minioProperties.getBucket() + "/", "#");
+        String fileName = replace.split("#")[1];
+        InputStream inputStream;
+        try {
+            MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(),
+                minioProperties.getSecretKey());
+            ObjectStat stat = minioClient.statObject(minioProperties.getBucket(), fileName);
+            inputStream = minioClient.getObject(minioProperties.getBucket(), fileName);
+            response.setContentType(stat.contentType());
+            response.setCharacterEncoding("UTF-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
+            IOUtils.copy(inputStream, response.getOutputStream());
+            inputStream.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    /**
+     * 文件下载
+     *
+     * @param response
+     * @param url
+     */
+    public byte[] getBytes(HttpServletResponse response, String url) {
+        // 从链接中得到文件名
+        String replace = url.replace(minioProperties.getBucket() + "/", "#");
+        String fileName = replace.split("#")[1];
+        InputStream inputStream;
+        byte[] bytes = new byte[0];
+        try {
+            MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(),
+                minioProperties.getSecretKey());
+            inputStream = minioClient.getObject(minioProperties.getBucket(), fileName);
+            bytes = toByteArray(inputStream);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return bytes;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/bootstrap.yml
index 8281d29..0ec1fd5 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/bootstrap.yml
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/bootstrap.yml
@@ -12,8 +12,8 @@
     active: ${ENV:dev}
   servlet:
     multipart:
-      max-file-size: 10MB
-      max-request-size: 10MB
+      max-file-size: 200MB
+      max-request-size: 200MB
 
 eureka:
   client:
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java
index 47a9205..dd35982 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java
@@ -213,7 +213,7 @@
     public LoginReturnVO loginCgBackage(String account, String password){
         Authentication authentication = null;
         authentication =
-                authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_8", password));
+                authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_9", password));
         LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
         String token = JWTTokenUtil.generateToken(loginUser);
         String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcApiConstants.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcApiConstants.java
index aa531a0..102a4e4 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcApiConstants.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcApiConstants.java
@@ -24,52 +24,52 @@
      * 获取token
      */
     public static final String GRID_GET_TOKEN_URL =
-        "http://171.217.92.33:53303/aaToken?username=#username&password=#password";
+        "/aaToken?username=#username&password=#password";
     /**
      * 提交事件登记(自处)
      */
-    public static final String GRID_REGIST_EVENT_URL = "http://171.217.92.33:53303/businessData/registEventInfo";
+    public static final String GRID_REGIST_EVENT_URL = "/businessData/registEventInfo";
     /**
      * 上传附件,仅上传文件流,服务器根据文件名自行匹配
      */
-    public static final String GRID_EVENT_FILE_UPLOAD_URL = "http://171.217.92.33:53303/businessData/upload";
+    public static final String GRID_EVENT_FILE_UPLOAD_URL = "/businessData/upload";
     /**
      * 事件类型获取
      */
-    public static final String GRID_EVENT_CATEGORY_URL = "http://171.217.92.33:53303/businessData/getEventType";
+    public static final String GRID_EVENT_CATEGORY_URL = "/businessData/getEventType";
     /**
      * 事件查询接口
      */
-    public static final String GRID_EVENT_INFO_URL = "http://171.217.92.33:53303/businessData/getEventListInfo";
+    public static final String GRID_EVENT_INFO_URL = "/businessData/getEventListInfo";
     /**
      * 获取指定APP登记事件详情信息
      */
-    public static final String GRID_EVENT_INFO_DETAIL_URL = "http://171.217.92.33:53303/businessData/getEventDetails";
+    public static final String GRID_EVENT_INFO_DETAIL_URL = "/businessData/getEventDetails";
     /**
      * 获取指定事件信息
      */
     public static final String GRID_APP_EVENT_INFO_DETAIL_URL =
-        "http://171.217.92.33:53303/businessData/getAppointEventInfo";
+        "/businessData/getAppointEventInfo";
     /**
      * 通过AREAID获取辖区网格树
      */
     public static final String GRID_GET_EVENT_INFO_AREA_ID_URL =
-        "http://171.217.92.33:53303/area/getAreaGridTreeByAreaId";
+        "/area/getAreaGridTreeByAreaId";
     /**
      * 通过AREAID获取辖区网格数据列表
      */
     public static final String GRID_GET_GRID_DATA_AREA_ID_URL =
-        "http://171.217.92.33:53303/gridDefined/getGridInfoByAreaId";
+        "/gridDefined/getGridInfoByAreaId";
     /**
      * 获取所有或者根据姓名和工号查询,分页
      */
     public static final String GRID_GET_GETALL_SEARCH_PAGE_URL =
-        "http://171.217.92.33:53303/gridOperator/getAllOrSearchByPage?areaId=jhRxqEQp";
+        "/gridOperator/getAllOrSearchByPage?areaId=jhRxqEQp";
     /**
      * 流动人口 走访记录列表
      */
     public static final String VISIT_RECORD_FLOW_PERSON_PAGE_URL =
-        "http://171.217.92.33:53303/businessData/getFPVisitRecordByPageApp";
+        "/businessData/getFPVisitRecordByPageApp";
 
     /**
      * 下面的接口全部都是走访任务接口
@@ -78,27 +78,27 @@
      * 流动人口 走访详情(民警带领下工作或者自己走访)
      */
     public static final String VISIT_RECORD_FLOW_PERSON_DETAIL_URL =
-        "http://171.217.92.33:53303/businessData/getFPVisitRecordDetailByIdApp";
+        "/businessData/getFPVisitRecordDetailByIdApp";
     /**
      * 流动人口 添加走访记录 (民警带领下工作或者自己走访)
      */
     public static final String VISIT_RECORD_FLOW_PERSON_SAVE_URL =
-        "http://171.217.92.33:53303/businessData/saveFpVisitRecordAppDock";
+        "/businessData/saveFpVisitRecordAppDock";
     /**
      * 重点人员 日常管理 走访记录列表
      */
     public static final String VISIT_RECORD_KEY_PERSON_PAGE_URL =
-        "http://171.217.92.33:53303/businessData/getKeyPersonVisitRecordByPageApp";
+        "/businessData/getKeyPersonVisitRecordByPageApp";
     /**
      * 重点人员 日常管理 走访详情
      */
     public static final String VISIT_RECORD_KEY_PERSON_DETAIL_URL =
-        "http://171.217.92.33:53303/businessData/getKeyPersonVisitRecordDetailByIdApp";
+        "/businessData/getKeyPersonVisitRecordDetailByIdApp";
     /**
      * 重点人员 日常管理 添加走访记录
      */
     public static final String VISIT_RECORD_KEY_PERSON_SAVE_REMOTE_URL =
-        "http://171.217.92.33:53303/businessData/saveKeyPersonVisitRecordAppDock";
+        "/businessData/saveKeyPersonVisitRecordAppDock";
 
     private LcApiConstants() {
         throw new IllegalStateException("Utility class");
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/Constants.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/Constants.java
index 9ff8fe9..ab92b80 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/Constants.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/Constants.java
@@ -174,6 +174,14 @@
 
     public static final String LOWSECURITY_POPULATION_ERROR_LIST = "LOWSECURITY_POPULATION_ERROR_LIST_";
 
+    public static final String ELDER_POPULATION_ERROR_LIST = "ELDER_POPULATION_ERROR_LIST_";
+
+    public static final String PENSION_POPULATION_ERROR_LIST = "PENSION_POPULATION_ERROR_LIST_";
+
+    public static final String ELDER_RECORD_ERROR_LIST = "ELDER_RECORD_ERROR_LIST_";
+
+    public static final String PENSION_RECORD_ERROR_LIST = "PENSION_RECORD_ERROR_LIST_";
+
     /**
      * 高德地图获取天气url
      */
@@ -183,4 +191,21 @@
      * 高德地图获取天气key
      */
     public static final String G_D_WEATHER_KEY = "02019a956b118ac7956c8539ab02b0f5";
+
+    /**
+     * 社区议事投票小程序身份验证参数默认key
+     */
+    public static final String DISCUSS_IDENTITY_KEY = "DISCUSS_IDENTITY_";
+    /**
+     * 常量
+     */
+    public static final Integer EIGHTY = 80;
+    /**
+     * 常量
+     */
+    public static final Integer NINETY = 90;
+    /**
+     * 常量
+     */
+    public static final Integer ONE_HUNDRED = 100;
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/HttpConstant.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/HttpConstant.java
index 90dda2c..977fca7 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/HttpConstant.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/HttpConstant.java
@@ -34,4 +34,10 @@
 
     /** text/xml */
     public static final String TEXT_XML = "text/xml";
+
+    /** 内江服务进出记录查询接口 */
+    public static final String NEIJIANG_URL = "https://mzj.scnjdx.gov.cn/proxy/comActCameraRecord/queryAll";
+
+    /** 测试服务报警记录查询接口 */
+    public static final String CALL_THE_POLICE_URL = "http://test.panzhihua.nhys.cdnhxx.com/api/communitybackstage/comPropertyAlarm/queryAll/noToken";
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/NeighborCircleConstants.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/NeighborCircleConstants.java
new file mode 100644
index 0000000..ac6aa96
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/NeighborCircleConstants.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.constants;
+
+/**
+ * 邻里圈常量类
+ */
+public class NeighborCircleConstants {
+
+    /**
+     * 浏览变动热度值
+     */
+    public static final Long VIEW_HOT_NUM = 1L;
+    /**
+     * 点赞变动热度值
+     */
+    public static final Long FABULOUS_HOT_NUM = 2L;
+    /**
+     * 评论变动热度值
+     */
+    public static final Long COMMENT_HOT_NUM = 3L;
+
+    /**
+     * 邻里圈自动审核状态KEY(value:1.自动审核 2.需要社区审核)
+     */
+    public static final String NEIGHBOR_CIRCLE_AUTO_EXAMINE = "NEIGHBOR_CIRCLE_AUTO_EXAMINE_";
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/UserConstants.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/UserConstants.java
index 63b73e2..b9c1a70 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/UserConstants.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/UserConstants.java
@@ -14,4 +14,6 @@
     public static final String LOGIN_USER_INFO = "login_user_info:";
     public static final String PHONE_PUT = "phone_put:";
     public static final String NEWS_ID = "news_media_id:";
+
+    public static final String NEWS_LIST = "news_list:";
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/WxSubscribeConstants.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/WxSubscribeConstants.java
index 5e80d18..3a99b83 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/WxSubscribeConstants.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/WxSubscribeConstants.java
@@ -66,6 +66,10 @@
      */
     public static final String HDJJKS_ID = "__0i0e8-yfDGW3jv3l-qobcWt23Ec3iZEdJhMV3nHWo";
     /**
+     * 预约提醒通知模板id
+     */
+    public static final String YYTX_ID = "KZtj9-KaqcDrKfZnNvv8A_bK4StEUtzLcOo0fhPjWNM";
+    /**
      * 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
      */
     public static final String MINIPROGRAM_STATE = "trial";
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityApprovalStatusEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityApprovalStatusEnum.java
new file mode 100644
index 0000000..4ad64ff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityApprovalStatusEnum.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * @title: IdentityApprovalStatusEnum
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 身份认证审核状态枚举类
+ * @author: hans
+ * @date: 2021/09/14 11:26
+ */
+@Getter
+public enum IdentityApprovalStatusEnum {
+    /**
+     * 待审核
+     */
+    PENDING_REVIEW(1),
+    /**
+     * 驳回
+     */
+    REFUSE(2),
+    /**
+     * 通过
+     */
+    PASS_THROUGH(3);
+
+    private int status;
+
+    IdentityApprovalStatusEnum(int status) {
+        this.status = status;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthMethodEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthMethodEnum.java
new file mode 100644
index 0000000..ea9b404
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthMethodEnum.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * @title: IdentityAuthMethodEnum
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 身份认证方式枚举类
+ * @author: hans
+ * @date: 2021/09/14 13:11
+ */
+@Getter
+public enum IdentityAuthMethodEnum {
+    /**
+     * 视频认证
+     */
+    VIDEO_AUTH(1),
+    /**
+     * 人脸核验
+     */
+    FACE_AUTH(2),
+    /**
+     * 线下认证
+     */
+    OFFLINE_AUTH(3);
+
+    private int method;
+
+    IdentityAuthMethodEnum(int method) {
+        this.method = method;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthStatusEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthStatusEnum.java
new file mode 100644
index 0000000..707bd88
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthStatusEnum.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * @title: IdentityAuthStatusEnum
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 身份认证认证状态枚举类
+ * @author: hans
+ * @date: 2021/09/14 11:30
+ */
+@Getter
+public enum IdentityAuthStatusEnum {
+    /**
+     * 已认证
+     */
+    CERTIFIED(1),
+    /**
+     * 未认证
+     */
+    NOT_CERTIFIED(0);
+
+    private int status;
+
+    IdentityAuthStatusEnum(int status) {
+        this.status = status;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthTypeEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthTypeEnum.java
new file mode 100644
index 0000000..686b7a8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthTypeEnum.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * @title: IdentityAuthTypeEnum
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 身份认证类型枚举类
+ * @author: hans
+ * @date: 2021/09/14 10:40
+ */
+@Getter
+public enum IdentityAuthTypeEnum {
+    /**
+     * 高龄认证
+     */
+    ELDER_AUTH(1),
+    /**
+     * 养老认证
+     */
+    PENSION_AUTH(2);
+
+    private int type;
+
+    IdentityAuthTypeEnum(int type) {
+        this.type = type;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComElderAuthRecordImportExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComElderAuthRecordImportExcelListen.java
new file mode 100644
index 0000000..61f5cd9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComElderAuthRecordImportExcelListen.java
@@ -0,0 +1,228 @@
+package com.panzhihua.common.listen;
+
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSONArray;
+import com.google.common.collect.Lists;
+import com.panzhihua.common.constants.BcDictionaryConstants;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.enums.*;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.BcDictionaryVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComElderAuthRecordImportExcelVO;
+import com.panzhihua.common.model.vos.community.ComElderAuthRecordImportMistakeExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationDrugExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationDrugMistakeExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.ListUtils;
+import com.panzhihua.common.utlis.PayUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+/**
+ * @description: 高龄认证线下认证居民导入监听
+ * @author: txb
+ */
+@Slf4j
+public class ComElderAuthRecordImportExcelListen extends AnalysisEventListener<Map<Integer, String>> {
+    /**
+     * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
+     */
+    private static final int BATCH_COUNT = 5000;
+    private static int headSize = 0;
+    List<Map<Integer, String>> list = new ArrayList<Map<Integer, String>>();
+    private CommunityService communityService;
+    private Long communityId;
+    private Long userId;
+    private Map<Integer, String> headData;
+    private StringRedisTemplate stringRedisTemplate;
+
+    public ComElderAuthRecordImportExcelListen(CommunityService communityService, Long communityId, Long userId,
+                                               StringRedisTemplate stringRedisTemplate) {
+        this.communityService = communityService;
+        this.communityId = communityId;
+        this.userId = userId;
+        this.stringRedisTemplate = stringRedisTemplate;
+    }
+
+    @Override
+    public void invoke(Map<Integer, String> data, AnalysisContext context) {
+        list.add(data);
+        if (list.size() >= BATCH_COUNT) {
+            saveData();
+            list.clear();
+        }
+    }
+
+    /**
+     * 这里会一行行的返回头
+     *
+     * @param headMap
+     * @param context
+     */
+    @Override
+    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
+        headSize = headMap.size();
+        headData = headMap;
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        saveData();
+        log.info("所有数据解析完成!");
+    }
+
+    /**
+     * 不是固定的列只能手动处理
+     */
+    private void saveData() {
+        log.info("开始导入线下认证居民数据");
+        log.info("表格总数据:" + list.size());
+        if (list.size() == 0) {
+            throw new ServiceException("100", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String key = Constants.ELDER_RECORD_ERROR_LIST + communityId;
+
+        int index = 2;
+        try {
+            String[] parsePatterns = new String[] {"yyyy-MM-dd", "yyyy-M-dd", "yyyy-MM-d", "yyyy-M-d", "yyyy/MM/dd",
+                "yyyy/M/dd", "yyyy/MM/d", "yyyy/M/d"};
+            ArrayList<ComElderAuthRecordImportExcelVO> voList = Lists.newArrayList();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ArrayList<ComElderAuthRecordImportMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComElderAuthRecordImportExcelVO vo = new ComElderAuthRecordImportExcelVO();
+                if (StringUtils.isEmpty(oneData.get(0))) {
+                    ComElderAuthRecordImportMistakeExcelVO mistake = new ComElderAuthRecordImportMistakeExcelVO();
+                    index++;
+                    setElderAuthMistake(oneData, mistake);
+                    mistake.setMistake("名字不可为空,请填写姓名");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setName(oneData.get(0));
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    ComElderAuthRecordImportMistakeExcelVO mistake = new ComElderAuthRecordImportMistakeExcelVO();
+                    index++;
+                    setElderAuthMistake(oneData, mistake);
+                    mistake.setMistake("身份证号不可为空,请填写身份证");
+                    mistakes.add(mistake);
+                    continue;
+                }
+
+                // 判断身份证号码位数
+                if (oneData.get(1).length() != 18) {
+                    ComElderAuthRecordImportMistakeExcelVO mistake = new ComElderAuthRecordImportMistakeExcelVO();
+                    index++;
+                    setElderAuthMistake(oneData, mistake);
+                    mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setIdCard(oneData.get(1).toUpperCase());
+                // 根据身份证号码解析年龄以及性别
+                // 获取用户生日
+                String birthday = vo.getIdCard().substring(6, 14);
+                if (StringUtils.isNotEmpty(birthday)) {
+                    String year = birthday.substring(0, 4);
+                    String month = birthday.substring(4, 6);
+                    String day = birthday.substring(6, 8);
+                    vo.setBirthday(year + "-" + month + "-" + day);
+                }
+                // //设置用户年龄
+                // vo.setAge(AgeUtils.getAgeFromBirthTime(birthday));
+                // 获取用户性别
+                int sex = Integer.parseInt(vo.getIdCard().substring(16, 17));
+                if (sex % 2 == 1) {
+                    vo.setSex(PopulSexEnum.nan.getCode());
+                } else {
+                    vo.setSex(PopulSexEnum.nv.getCode());
+                }
+
+                if (StringUtils.isNotEmpty(oneData.get(2))) {
+                    vo.setPhone(oneData.get(2));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(3))) {
+                    vo.setNowAddress(oneData.get(3));
+                }
+                if (StringUtils.isEmpty(oneData.get(4))) {
+                    index++;
+                    ComElderAuthRecordImportMistakeExcelVO mistake = new ComElderAuthRecordImportMistakeExcelVO();
+                    setElderAuthMistake(oneData, mistake);
+                    mistake.setMistake("认证时间不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setAuthDate(DateUtil.parse(oneData.get(4).trim(), parsePatterns));
+                if (StringUtils.isEmpty(oneData.get(5))) {
+                    index++;
+                    ComElderAuthRecordImportMistakeExcelVO mistake = new ComElderAuthRecordImportMistakeExcelVO();
+                    setElderAuthMistake(oneData, mistake);
+                    mistake.setMistake("认证期数不能为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setAuthPeriod(oneData.get(5));
+                if (StringUtils.isNotEmpty(oneData.get(6))) {
+                    vo.setMark(oneData.get(6));
+                }
+
+                voList.add(vo);
+                index++;
+            }
+            log.info("开始进入业务层处理逻辑");
+            R r = communityService.listSaveElderAuthRecordExcelVO(voList, communityId, userId);
+            log.info("业务层处理逻辑完成");
+            if (!R.isOk(r)) {
+                log.info("业务层处理成功");
+                List<ComElderAuthRecordImportMistakeExcelVO> list =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComElderAuthRecordImportMistakeExcelVO.class);
+                mistakes.addAll(list);
+                log.info("将错误数据存入redis中");
+                valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                log.info("将错误数据存入redis中成功");
+                throw new ServiceException("500", key);
+            } else {
+                log.info("业务层处理逻辑失败");
+                if (!mistakes.isEmpty()) {
+                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中");
+                    valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中成功");
+                    throw new ServiceException("500", key);
+                }
+            }
+        } catch (NumberFormatException e) {
+            log.info("处理数据时失败");
+            e.printStackTrace();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+            // importErrorVO.setErrorPosition("第" + index + "行");
+            // importErrorVO.setErrorMsg("数据格式有误,请检查文档内数据");
+            // populationImportErrorVOList.add(importErrorVO);
+            log.error("数据格式有误,第" + index + "行");
+            throw new ServiceException("500", "导入失败111");
+        }
+    }
+
+    private void setElderAuthMistake(Map<Integer, String> map, ComElderAuthRecordImportMistakeExcelVO vo) {
+        vo.setName(map.get(0));
+        vo.setIdCard(map.get(1));
+        vo.setPhone(map.get(2));
+        vo.setNowAddress(map.get(3));
+        vo.setAuthDate(map.get(4));
+        vo.setAuthPeriod(map.get(5));
+        vo.setMark(map.get(6));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationElderExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationElderExcelListen.java
new file mode 100644
index 0000000..4c18514
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationElderExcelListen.java
@@ -0,0 +1,470 @@
+package com.panzhihua.common.listen;
+
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSONArray;
+import com.google.common.collect.Lists;
+import com.panzhihua.common.constants.BcDictionaryConstants;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.enums.*;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.BcDictionaryVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngPopulationElderExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationElderMistakeExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationMistakeExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.ListUtils;
+import com.panzhihua.common.utlis.PayUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+/**
+ * title: ComMngPopulationElderExcelListen  高龄老人导入监听
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 高龄老人导入监听
+ *
+ * @author txb
+ * @date 2021/9/01 15:12
+ */
+@Slf4j
+public class ComMngPopulationElderExcelListen extends AnalysisEventListener<Map<Integer, String>> {
+    /**
+     * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
+     */
+    private static final int BATCH_COUNT = 5000;
+    private static int headSize = 0;
+    List<Map<Integer, String>> list = new ArrayList<Map<Integer, String>>();
+    private CommunityService communityService;
+    private Long communityId;
+    private Long userId;
+    private Map<Integer, String> headData;
+    private StringRedisTemplate stringRedisTemplate;
+
+    public ComMngPopulationElderExcelListen(CommunityService communityService, Long communityId, Long userId,
+                                            StringRedisTemplate stringRedisTemplate) {
+        this.communityService = communityService;
+        this.communityId = communityId;
+        this.userId = userId;
+        this.stringRedisTemplate = stringRedisTemplate;
+    }
+
+    @Override
+    public void invoke(Map<Integer, String> data, AnalysisContext context) {
+        list.add(data);
+        if (list.size() >= BATCH_COUNT) {
+            saveData();
+            list.clear();
+        }
+    }
+
+    /**
+     * 这里会一行行的返回头
+     *
+     * @param headMap
+     * @param context
+     */
+    @Override
+    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
+        headSize = headMap.size();
+        headData = headMap;
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        saveData();
+        log.info("所有数据解析完成!");
+    }
+
+    /**
+     * 不是固定的列只能手动处理
+     */
+    private void saveData() {
+        R<List<BcDictionaryVO>> dictionaryR = communityService.listDictionaryByKey(BcDictionaryConstants.FAMILY);
+        log.info("开始导入高龄老人数据");
+        log.info("表格总数据:" + list.size());
+        if (list.size() == 0) {
+            throw new ServiceException("100", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String key = Constants.ELDER_POPULATION_ERROR_LIST;
+
+        Map<String, String> dictMap = dictionaryR.getData().stream()
+            .collect(Collectors.toMap(BcDictionaryVO::getDictName, BcDictionaryVO::getDictValue));
+        // Map<String,Integer> dictMap = new HashMap<>();
+        // for(BcDictionaryVO vo : dictionaryR.getData()){
+        // dictMap.put(vo.getDictName(),Integer.valueOf(vo.getDictValue()));
+        // }
+
+        int index = 2;
+        try {
+            String[] parsePatterns = new String[] {"yyyy-MM-dd", "yyyy-M-dd", "yyyy-MM-d", "yyyy-M-d", "yyyy/MM/dd",
+                "yyyy/M/dd", "yyyy/MM/d", "yyyy/M/d"};
+            ArrayList<ComMngPopulationElderExcelVO> voList = Lists.newArrayList();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ArrayList<ComMngPopulationElderMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComMngPopulationElderExcelVO vo = new ComMngPopulationElderExcelVO();
+                if (StringUtils.isEmpty(oneData.get(0))) {
+                    ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                    index++;
+                    setElderMistake(oneData, mistake);
+                    mistake.setMistake("名字不可为空,请填写姓名");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setName(oneData.get(0));
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                    index++;
+                    setElderMistake(oneData, mistake);
+                    mistake.setMistake("身份证号不可为空,请填写身份证");
+                    mistakes.add(mistake);
+                    continue;
+                }
+
+                // 判断身份证号码位数
+                if (oneData.get(1).length() != 18) {
+                    ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                    index++;
+                    setElderMistake(oneData, mistake);
+                    mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setCardNo(oneData.get(1).toUpperCase());
+                // 根据身份证号码解析年龄以及性别
+                // 获取用户生日
+                String birthday = vo.getCardNo().substring(6, 14);
+                if (StringUtils.isNotEmpty(birthday)) {
+                    String year = birthday.substring(0, 4);
+                    String month = birthday.substring(4, 6);
+                    String day = birthday.substring(6, 8);
+                    vo.setBirthday(year + "-" + month + "-" + day);
+                }
+                // //设置用户年龄
+                // vo.setAge(AgeUtils.getAgeFromBirthTime(birthday));
+                // 获取用户性别
+                int sex = Integer.parseInt(vo.getCardNo().substring(16, 17));
+                if (sex % 2 == 1) {
+                    vo.setSex(PopulSexEnum.nan.getCode());
+                } else {
+                    vo.setSex(PopulSexEnum.nv.getCode());
+                }
+
+                if (StringUtils.isNotEmpty(oneData.get(2))) {
+                    vo.setNation(oneData.get(2));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(3))) {
+                    Integer isOk = PopulPoliticalOutlookEnum.getCodeByName(oneData.get(3));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                        setElderMistake(oneData, mistake);
+                        mistake.setMistake("您填写的政治面貌有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setPoliticalOutlook(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(4))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(4));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                        index++;
+                        setElderMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否租住有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRent(isOk);
+                } else {
+                    vo.setIsRent(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isEmpty(oneData.get(5))) {
+                    index++;
+                    ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                    setElderMistake(oneData, mistake);
+                    mistake.setMistake("街路巷不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setRoad(oneData.get(5));
+                if (StringUtils.isEmpty(oneData.get(6))) {
+                    index++;
+                    ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                    setElderMistake(oneData, mistake);
+                    mistake.setMistake("小区号不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setDoorNo(oneData.get(6).trim());
+                // if(StringUtils.isEmpty(oneData.get(7))){
+                // index++;
+                // ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                // setElderMistake(oneData, mistake);
+                // mistake.setMistake("楼排号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(7))) {
+                    vo.setFloor(oneData.get(7).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(8))){
+                // index++;
+                // ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                // setElderMistake(oneData, mistake);
+                // mistake.setMistake("单元号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(8))) {
+                    vo.setUnitNo(oneData.get(8).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(9))){
+                // index++;
+                // ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                // setElderMistake(oneData, mistake);
+                // mistake.setMistake("户室不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(9))) {
+                    vo.setHouseNo(oneData.get(9).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(10))) {
+                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(10).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                        setElderMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHouseStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(11))) {
+                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(11).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                        setElderMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋用途有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHousePurpose(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(12))) {
+                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(12));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                        setElderMistake(oneData, mistake);
+                        mistake.setMistake("您填写的管控状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setControlStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(13))) {
+                    vo.setPhone(oneData.get(13).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(14))) {
+                    vo.setNativePlace(oneData.get(14).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(15))) {
+                    Integer isOk = PopulCultureLevelEnum.getCodeByName(oneData.get(15));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                        setElderMistake(oneData, mistake);
+                        mistake.setMistake("您填写的文化程度有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setCultureLevel(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(16))) {
+                    Integer isOk = PopulMarriageEnum.getCodeByName(oneData.get(16));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                        setElderMistake(oneData, mistake);
+                        mistake.setMistake("您填写的婚姻状况有误");
+                        mistakes.add(mistake);
+                        continue;
+                    } else {
+                        vo.setMarriage(isOk);
+                    }
+                }
+                if (StringUtils.isNotEmpty(oneData.get(17))) {
+                    vo.setHealthy(oneData.get(17).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(18))) {
+                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(18));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                        setElderMistake(oneData, mistake);
+                        mistake.setMistake("您填写的本地/外地有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setOutOrLocal(isOk);
+                } else {
+                    vo.setOutOrLocal(PopulOutOrLocalEnum.getCodeByName("本地"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(19))) {
+                    vo.setCensusRegister(oneData.get(19).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(20))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(20));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                        index++;
+                        setElderMistake(oneData, mistake);
+                        mistake.setMistake("您填写的高龄老人登记(是/否)有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRegister(isOk);
+                } else {
+                    vo.setIsRegister(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(21))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(21));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                        index++;
+                        setElderMistake(oneData, mistake);
+                        mistake.setMistake("您填写的健在(是/否)有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsAlive(isOk);
+                } else {
+                    vo.setIsAlive(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(22))) {
+                    vo.setReceiveAllowanceBegin(DateUtil.parse(oneData.get(22).trim(), parsePatterns));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(23))) {
+                    vo.setNowAddress(oneData.get(23).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(24))) {
+                    vo.setRemark(oneData.get(24).trim());
+                }
+                vo.getUserTagStr().add("高龄老人");
+                for (int i = 25; i < headSize; i++) {
+                    if (oneData.get(i) != null && oneData.get(i).equals("是")) {
+                        vo.getUserTagStr().add(headData.get(i).substring(0, headData.get(i).indexOf("(")));
+                    }
+                }
+                // 将重复的数据进行MD5加密实现去重
+                String distinct = vo.getName() + vo.getCardNo() + vo.getRoad() + vo.getDoorNo() + vo.getFloor()
+                    + vo.getUnitNo() + vo.getHouseNo();
+                try {
+                    String distinctPass = PayUtil.MD5(distinct);
+                    if (StringUtils.isNotEmpty(distinctPass)) {
+                        vo.setDistinctPass(distinctPass);
+                    }
+                } catch (Exception e) {
+                    log.error("组装MD5加密字段失败,数据表格行数:" + index);
+                    continue;
+                }
+                voList.add(vo);
+                index++;
+            }
+            // 客户需要暂时注释,等客户处理完成需要恢复
+            // if(populationImportErrorVOList.isEmpty()){
+            // R r = communityService.listSavePopulationServeExcelVO(voList, communityId);
+            // if (!R.isOk(r)) {
+            // throw new ServiceException(r.getMsg());
+            // }
+            // }else{
+            // throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
+            // }
+            // 根据list中的IdCard城市来去重
+            List<ComMngPopulationElderExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationElderExcelVO::getDistinctPass))
+                    .collect(Collectors.toList());
+            log.info("开始进入业务层处理逻辑");
+            R r = communityService.listSavePopulationElderExcelVO(newVoList, communityId, userId);
+            log.info("业务层处理逻辑完成");
+            if (!R.isOk(r)) {
+                log.info("业务层处理成功");
+                List<ComMngPopulationElderMistakeExcelVO> list =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationElderMistakeExcelVO.class);
+                // String errMsg = r.getMsg();
+                // List<ComMngPopulationImportErrorVO> errorList =
+                // JSON.parseArray(errMsg,ComMngPopulationImportErrorVO.class);
+                // if(!errorList.isEmpty()){
+                // populationImportErrorVOList.addAll(errorList);
+                // }
+                mistakes.addAll(list);
+                log.info("将错误数据存入redis中");
+                valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                log.info("将错误数据存入redis中成功");
+                throw new ServiceException("500", key);
+            } else {
+                log.info("业务层处理逻辑失败");
+                if (!mistakes.isEmpty()) {
+                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中");
+                    valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中成功");
+                    throw new ServiceException("500", key);
+                }
+            }
+        } catch (NumberFormatException e) {
+            log.info("处理数据时失败");
+            e.printStackTrace();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+            // importErrorVO.setErrorPosition("第" + index + "行");
+            // importErrorVO.setErrorMsg("数据格式有误,请检查文档内数据");
+            // populationImportErrorVOList.add(importErrorVO);
+            log.error("数据格式有误,第" + index + "行");
+            throw new ServiceException("500", "导入失败111");
+        }
+    }
+
+    private void setElderMistake(Map<Integer, String> map, ComMngPopulationElderMistakeExcelVO vo) {
+        vo.setName(map.get(0));
+        vo.setCardNo(map.get(1));
+        vo.setNation(map.get(2));
+        vo.setPoliticalOutlook(map.get(3));
+        vo.setIsRent(map.get(4));
+        vo.setRoad(map.get(5));
+        vo.setDoorNo(map.get(6));
+        vo.setFloor(map.get(7));
+        vo.setUnitNo(map.get(8));
+        vo.setHouseNo(map.get(9));
+        vo.setHouseStatus(map.get(10));
+        vo.setHousePurpose(map.get(11));
+        vo.setControlStatus(map.get(12));
+        vo.setPhone(map.get(13));
+        vo.setNativePlace(map.get(14));
+        vo.setCultureLevel(map.get(15));
+        vo.setMarriage(map.get(16));
+        vo.setHealthy(map.get(17));
+        vo.setOutOrLocal(map.get(18));
+        vo.setCensusRegister(map.get(19));
+        vo.setIsRegister(map.get(20));
+        vo.setIsAlive(map.get(21));
+        vo.setReceiveAllowanceBegin(map.get(22));
+        vo.setNowAddress(map.get(23));
+        vo.setRemark(map.get(24));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationPensionExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationPensionExcelListen.java
new file mode 100644
index 0000000..929169d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationPensionExcelListen.java
@@ -0,0 +1,468 @@
+package com.panzhihua.common.listen;
+
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSONArray;
+import com.google.common.collect.Lists;
+import com.panzhihua.common.constants.BcDictionaryConstants;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.enums.*;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.BcDictionaryVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngPopulationPensionExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationPensionMistakeExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.ListUtils;
+import com.panzhihua.common.utlis.PayUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+/**
+ * title: ComMngPopulationPensionExcelListen  养老金人员导入监听
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 养老金人员导入监听
+ *
+ * @author txb
+ * @date 2021/9/01 15:12
+ */
+@Slf4j
+public class ComMngPopulationPensionExcelListen extends AnalysisEventListener<Map<Integer, String>> {
+    /**
+     * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
+     */
+    private static final int BATCH_COUNT = 5000;
+    private static int headSize = 0;
+    List<Map<Integer, String>> list = new ArrayList<Map<Integer, String>>();
+    private CommunityService communityService;
+    private Long communityId;
+    private Long userId;
+    private Map<Integer, String> headData;
+    private StringRedisTemplate stringRedisTemplate;
+
+    public ComMngPopulationPensionExcelListen(CommunityService communityService, Long communityId, Long userId,
+                                              StringRedisTemplate stringRedisTemplate) {
+        this.communityService = communityService;
+        this.communityId = communityId;
+        this.userId = userId;
+        this.stringRedisTemplate = stringRedisTemplate;
+    }
+
+    @Override
+    public void invoke(Map<Integer, String> data, AnalysisContext context) {
+        list.add(data);
+        if (list.size() >= BATCH_COUNT) {
+            saveData();
+            list.clear();
+        }
+    }
+
+    /**
+     * 这里会一行行的返回头
+     *
+     * @param headMap
+     * @param context
+     */
+    @Override
+    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
+        headSize = headMap.size();
+        headData = headMap;
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        saveData();
+        log.info("所有数据解析完成!");
+    }
+
+    /**
+     * 不是固定的列只能手动处理
+     */
+    private void saveData() {
+        R<List<BcDictionaryVO>> dictionaryR = communityService.listDictionaryByKey(BcDictionaryConstants.FAMILY);
+        log.info("开始导入养老金人员数据");
+        log.info("表格总数据:" + list.size());
+        if (list.size() == 0) {
+            throw new ServiceException("100", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String key = Constants.PENSION_POPULATION_ERROR_LIST;
+
+        Map<String, String> dictMap = dictionaryR.getData().stream()
+            .collect(Collectors.toMap(BcDictionaryVO::getDictName, BcDictionaryVO::getDictValue));
+        // Map<String,Integer> dictMap = new HashMap<>();
+        // for(BcDictionaryVO vo : dictionaryR.getData()){
+        // dictMap.put(vo.getDictName(),Integer.valueOf(vo.getDictValue()));
+        // }
+
+        int index = 2;
+        try {
+            String[] parsePatterns = new String[] {"yyyy-MM-dd", "yyyy-M-dd", "yyyy-MM-d", "yyyy-M-d", "yyyy/MM/dd",
+                "yyyy/M/dd", "yyyy/MM/d", "yyyy/M/d"};
+            ArrayList<ComMngPopulationPensionExcelVO> voList = Lists.newArrayList();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ArrayList<ComMngPopulationPensionMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComMngPopulationPensionExcelVO vo = new ComMngPopulationPensionExcelVO();
+                if (StringUtils.isEmpty(oneData.get(0))) {
+                    ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                    index++;
+                    setPensionMistake(oneData, mistake);
+                    mistake.setMistake("名字不可为空,请填写姓名");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setName(oneData.get(0));
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                    index++;
+                    setPensionMistake(oneData, mistake);
+                    mistake.setMistake("身份证号不可为空,请填写身份证");
+                    mistakes.add(mistake);
+                    continue;
+                }
+
+                // 判断身份证号码位数
+                if (oneData.get(1).length() != 18) {
+                    ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                    index++;
+                    setPensionMistake(oneData, mistake);
+                    mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setCardNo(oneData.get(1).toUpperCase());
+                // 根据身份证号码解析年龄以及性别
+                // 获取用户生日
+                String birthday = vo.getCardNo().substring(6, 14);
+                if (StringUtils.isNotEmpty(birthday)) {
+                    String year = birthday.substring(0, 4);
+                    String month = birthday.substring(4, 6);
+                    String day = birthday.substring(6, 8);
+                    vo.setBirthday(year + "-" + month + "-" + day);
+                }
+                // //设置用户年龄
+                // vo.setAge(AgeUtils.getAgeFromBirthTime(birthday));
+                // 获取用户性别
+                int sex = Integer.parseInt(vo.getCardNo().substring(16, 17));
+                if (sex % 2 == 1) {
+                    vo.setSex(PopulSexEnum.nan.getCode());
+                } else {
+                    vo.setSex(PopulSexEnum.nv.getCode());
+                }
+
+                if (StringUtils.isNotEmpty(oneData.get(2))) {
+                    vo.setNation(oneData.get(2));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(3))) {
+                    Integer isOk = PopulPoliticalOutlookEnum.getCodeByName(oneData.get(3));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                        setPensionMistake(oneData, mistake);
+                        mistake.setMistake("您填写的政治面貌有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setPoliticalOutlook(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(4))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(4));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                        index++;
+                        setPensionMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否租住有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRent(isOk);
+                } else {
+                    vo.setIsRent(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isEmpty(oneData.get(5))) {
+                    index++;
+                    ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                    setPensionMistake(oneData, mistake);
+                    mistake.setMistake("街路巷不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setRoad(oneData.get(5));
+                if (StringUtils.isEmpty(oneData.get(6))) {
+                    index++;
+                    ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                    setPensionMistake(oneData, mistake);
+                    mistake.setMistake("小区号不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setDoorNo(oneData.get(6).trim());
+                // if(StringUtils.isEmpty(oneData.get(7))){
+                // index++;
+                // ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                // setPensionMistake(oneData, mistake);
+                // mistake.setMistake("楼排号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(7))) {
+                    vo.setFloor(oneData.get(7).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(8))){
+                // index++;
+                // ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                // setPensionMistake(oneData, mistake);
+                // mistake.setMistake("单元号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(8))) {
+                    vo.setUnitNo(oneData.get(8).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(9))){
+                // index++;
+                // ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                // setPensionMistake(oneData, mistake);
+                // mistake.setMistake("户室不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(9))) {
+                    vo.setHouseNo(oneData.get(9).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(10))) {
+                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(10).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                        setPensionMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHouseStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(11))) {
+                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(11).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                        setPensionMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋用途有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHousePurpose(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(12))) {
+                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(12));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                        setPensionMistake(oneData, mistake);
+                        mistake.setMistake("您填写的管控状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setControlStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(13))) {
+                    vo.setPhone(oneData.get(13).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(14))) {
+                    vo.setNativePlace(oneData.get(14).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(15))) {
+                    Integer isOk = PopulCultureLevelEnum.getCodeByName(oneData.get(15));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                        setPensionMistake(oneData, mistake);
+                        mistake.setMistake("您填写的文化程度有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setCultureLevel(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(16))) {
+                    Integer isOk = PopulMarriageEnum.getCodeByName(oneData.get(16));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                        setPensionMistake(oneData, mistake);
+                        mistake.setMistake("您填写的婚姻状况有误");
+                        mistakes.add(mistake);
+                        continue;
+                    } else {
+                        vo.setMarriage(isOk);
+                    }
+                }
+                if (StringUtils.isNotEmpty(oneData.get(17))) {
+                    vo.setHealthy(oneData.get(17).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(18))) {
+                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(18));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                        setPensionMistake(oneData, mistake);
+                        mistake.setMistake("您填写的本地/外地有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setOutOrLocal(isOk);
+                } else {
+                    vo.setOutOrLocal(PopulOutOrLocalEnum.getCodeByName("本地"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(19))) {
+                    vo.setCensusRegister(oneData.get(19).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(20))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(20));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                        index++;
+                        setPensionMistake(oneData, mistake);
+                        mistake.setMistake("您填写的养老登记(是/否)有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRegister(isOk);
+                } else {
+                    vo.setIsRegister(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(21))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(21));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                        index++;
+                        setPensionMistake(oneData, mistake);
+                        mistake.setMistake("您填写的健在(是/否)有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsAlive(isOk);
+                } else {
+                    vo.setIsAlive(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(22))) {
+                    vo.setReceiveAllowanceBegin(DateUtil.parse(oneData.get(22).trim(), parsePatterns));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(23))) {
+                    vo.setNowAddress(oneData.get(23).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(24))) {
+                    vo.setRemark(oneData.get(24).trim());
+                }
+                vo.getUserTagStr().add("养老金人员");
+                for (int i = 25; i < headSize; i++) {
+                    if (oneData.get(i) != null && oneData.get(i).equals("是")) {
+                        vo.getUserTagStr().add(headData.get(i).substring(0, headData.get(i).indexOf("(")));
+                    }
+                }
+                // 将重复的数据进行MD5加密实现去重
+                String distinct = vo.getName() + vo.getCardNo() + vo.getRoad() + vo.getDoorNo() + vo.getFloor()
+                    + vo.getUnitNo() + vo.getHouseNo();
+                try {
+                    String distinctPass = PayUtil.MD5(distinct);
+                    if (StringUtils.isNotEmpty(distinctPass)) {
+                        vo.setDistinctPass(distinctPass);
+                    }
+                } catch (Exception e) {
+                    log.error("组装MD5加密字段失败,数据表格行数:" + index);
+                    continue;
+                }
+                voList.add(vo);
+                index++;
+            }
+            // 客户需要暂时注释,等客户处理完成需要恢复
+            // if(populationImportErrorVOList.isEmpty()){
+            // R r = communityService.listSavePopulationServeExcelVO(voList, communityId);
+            // if (!R.isOk(r)) {
+            // throw new ServiceException(r.getMsg());
+            // }
+            // }else{
+            // throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
+            // }
+            // 根据list中的IdCard城市来去重
+            List<ComMngPopulationPensionExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationPensionExcelVO::getDistinctPass))
+                    .collect(Collectors.toList());
+            log.info("开始进入业务层处理逻辑");
+            R r = communityService.listSavePopulationPensionExcelVO(newVoList, communityId, userId);
+            log.info("业务层处理逻辑完成");
+            if (!R.isOk(r)) {
+                log.info("业务层处理成功");
+                List<ComMngPopulationPensionMistakeExcelVO> list =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationPensionMistakeExcelVO.class);
+                // String errMsg = r.getMsg();
+                // List<ComMngPopulationImportErrorVO> errorList =
+                // JSON.parseArray(errMsg,ComMngPopulationImportErrorVO.class);
+                // if(!errorList.isEmpty()){
+                // populationImportErrorVOList.addAll(errorList);
+                // }
+                mistakes.addAll(list);
+                log.info("将错误数据存入redis中");
+                valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                log.info("将错误数据存入redis中成功");
+                throw new ServiceException("500", key);
+            } else {
+                log.info("业务层处理逻辑失败");
+                if (!mistakes.isEmpty()) {
+                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中");
+                    valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中成功");
+                    throw new ServiceException("500", key);
+                }
+            }
+        } catch (NumberFormatException e) {
+            log.info("处理数据时失败");
+            e.printStackTrace();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+            // importErrorVO.setErrorPosition("第" + index + "行");
+            // importErrorVO.setErrorMsg("数据格式有误,请检查文档内数据");
+            // populationImportErrorVOList.add(importErrorVO);
+            log.error("数据格式有误,第" + index + "行");
+            throw new ServiceException("500", "导入失败111");
+        }
+    }
+
+    private void setPensionMistake(Map<Integer, String> map, ComMngPopulationPensionMistakeExcelVO vo) {
+        vo.setName(map.get(0));
+        vo.setCardNo(map.get(1));
+        vo.setNation(map.get(2));
+        vo.setPoliticalOutlook(map.get(3));
+        vo.setIsRent(map.get(4));
+        vo.setRoad(map.get(5));
+        vo.setDoorNo(map.get(6));
+        vo.setFloor(map.get(7));
+        vo.setUnitNo(map.get(8));
+        vo.setHouseNo(map.get(9));
+        vo.setHouseStatus(map.get(10));
+        vo.setHousePurpose(map.get(11));
+        vo.setControlStatus(map.get(12));
+        vo.setPhone(map.get(13));
+        vo.setNativePlace(map.get(14));
+        vo.setCultureLevel(map.get(15));
+        vo.setMarriage(map.get(16));
+        vo.setHealthy(map.get(17));
+        vo.setOutOrLocal(map.get(18));
+        vo.setCensusRegister(map.get(19));
+        vo.setIsRegister(map.get(20));
+        vo.setIsAlive(map.get(21));
+        vo.setReceiveAllowanceBegin(map.get(22));
+        vo.setNowAddress(map.get(23));
+        vo.setRemark(map.get(24));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationRehabilitationExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationRehabilitationExcelListen.java
index dd2eb95..ebf3886 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationRehabilitationExcelListen.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationRehabilitationExcelListen.java
@@ -357,13 +357,13 @@
                     vo.setOriginalTerm(oneData.get(22).trim());
                 }
                 if (StringUtils.isNotEmpty(oneData.get(23))) {
-                    vo.setSentenceBegin(DateUtil.parse(oneData.get(23).trim()));
+                    vo.setSentenceBegin(DateUtil.parse(oneData.get(23).trim(), parsePatterns));
                 }
                 if (StringUtils.isNotEmpty(oneData.get(24))) {
                     vo.setOriginalCharge(oneData.get(24).trim());
                 }
                 if (StringUtils.isNotEmpty(oneData.get(25))) {
-                    vo.setSentenceEnd(DateUtil.parse(oneData.get(25).trim()));
+                    vo.setSentenceEnd(DateUtil.parse(oneData.get(25).trim(), parsePatterns));
                 }
                 if (StringUtils.isNotEmpty(oneData.get(26))) {
                     vo.setSentencePlace(oneData.get(26).trim());
@@ -372,7 +372,7 @@
                     vo.setRiskAssessment(oneData.get(27).trim());
                 }
                 if (StringUtils.isNotEmpty(oneData.get(28))) {
-                    vo.setJoinDate(DateUtil.parse(oneData.get(28).trim()));
+                    vo.setJoinDate(DateUtil.parse(oneData.get(28).trim(), parsePatterns));
                 }
                 if (StringUtils.isNotEmpty(oneData.get(29))) {
                     vo.setJoinSituation(oneData.get(29).trim());
@@ -399,14 +399,14 @@
                     vo.setPlaceSituation(oneData.get(32).trim());
                 }
                 if (StringUtils.isNotEmpty(oneData.get(33))) {
-                    vo.setPlaceDate(DateUtil.parse(oneData.get(33).trim()));
+                    vo.setPlaceDate(DateUtil.parse(oneData.get(33).trim(), parsePatterns));
                 }
                 if (StringUtils.isNotEmpty(oneData.get(34))) {
                     vo.setNotPlaceReason(oneData.get(34).trim());
                 }
                 if (StringUtils.isNotEmpty(oneData.get(35))) {
                     try {
-                        vo.setHelpBegin(DateUtil.parse(oneData.get(35).trim()));
+                        vo.setHelpBegin(DateUtil.parse(oneData.get(35).trim(), parsePatterns));
                     } catch (DateException e) {
                         log.info("处理数据时失败");
                         e.printStackTrace();
@@ -421,7 +421,7 @@
                 }
                 if (StringUtils.isNotEmpty(oneData.get(36))) {
                     try {
-                        vo.setHelpEnd(DateUtil.parse(oneData.get(36).trim()));
+                        vo.setHelpEnd(DateUtil.parse(oneData.get(36).trim(), parsePatterns));
                     } catch (DateException e) {
                         log.info("处理数据时失败");
                         e.printStackTrace();
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComPensionAuthRecordImportExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComPensionAuthRecordImportExcelListen.java
new file mode 100644
index 0000000..d75167d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComPensionAuthRecordImportExcelListen.java
@@ -0,0 +1,240 @@
+package com.panzhihua.common.listen;
+
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSONArray;
+import com.google.common.collect.Lists;
+import com.panzhihua.common.constants.BcDictionaryConstants;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.enums.PopulHouseUseEnum;
+import com.panzhihua.common.enums.PopulSexEnum;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.BcDictionaryVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportExcelVO;
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportMistakeExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+/**
+ * @title: ComPensionAuthRecordImportExcelListen
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老线下认证导入监听
+ * @author: txb
+ * @date: 2021/09/08 09:16
+ */
+@Slf4j
+public class ComPensionAuthRecordImportExcelListen extends AnalysisEventListener<Map<Integer, String>> {
+    /**
+     * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
+     */
+    private static final int BATCH_COUNT = 5000;
+    private static int headSize = 0;
+    List<Map<Integer, String>> list = new ArrayList<Map<Integer, String>>();
+    private CommunityService communityService;
+    private Long communityId;
+    private Long userId;
+    private Map<Integer, String> headData;
+    private StringRedisTemplate stringRedisTemplate;
+
+    public ComPensionAuthRecordImportExcelListen(CommunityService communityService, Long communityId, Long userId,
+                                                 StringRedisTemplate stringRedisTemplate) {
+        this.communityService = communityService;
+        this.communityId = communityId;
+        this.userId = userId;
+        this.stringRedisTemplate = stringRedisTemplate;
+    }
+
+    @Override
+    public void invoke(Map<Integer, String> data, AnalysisContext context) {
+        list.add(data);
+        if (list.size() >= BATCH_COUNT) {
+            saveData();
+            list.clear();
+        }
+    }
+
+    /**
+     * 这里会一行行的返回头
+     *
+     * @param headMap
+     * @param context
+     */
+    @Override
+    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
+        headSize = headMap.size();
+        headData = headMap;
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext context) {
+        saveData();
+        log.info("所有数据解析完成!");
+    }
+
+    /**
+     * 不是固定的列只能手动处理
+     */
+    private void saveData() {
+        R<List<BcDictionaryVO>> dictionaryR = communityService.listDictionaryByKey(BcDictionaryConstants.FAMILY);
+        log.info("开始导入线下认证居民数据");
+        log.info("表格总数据:" + list.size());
+        if (list.size() == 0) {
+            throw new ServiceException("100", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String key = Constants.PENSION_RECORD_ERROR_LIST +  + communityId;
+
+        Map<String, String> dictMap = dictionaryR.getData().stream()
+            .collect(Collectors.toMap(BcDictionaryVO::getDictName, BcDictionaryVO::getDictValue));
+        // Map<String,Integer> dictMap = new HashMap<>();
+        // for(BcDictionaryVO vo : dictionaryR.getData()){
+        // dictMap.put(vo.getDictName(),Integer.valueOf(vo.getDictValue()));
+        // }
+
+        int index = 2;
+        try {
+            String[] parsePatterns = new String[] {"yyyy-MM-dd", "yyyy-M-dd", "yyyy-MM-d", "yyyy-M-d", "yyyy/MM/dd",
+                "yyyy/M/dd", "yyyy/MM/d", "yyyy/M/d"};
+            ArrayList<ComPensionAuthRecordImportExcelVO> voList = Lists.newArrayList();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ArrayList<ComPensionAuthRecordImportMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComPensionAuthRecordImportExcelVO vo = new ComPensionAuthRecordImportExcelVO();
+                if (StringUtils.isEmpty(oneData.get(0))) {
+                    ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
+                    index++;
+                    setPensionAuthMistake(oneData, mistake);
+                    mistake.setMistake("名字不可为空,请填写姓名");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setName(oneData.get(0));
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
+                    index++;
+                    setPensionAuthMistake(oneData, mistake);
+                    mistake.setMistake("身份证号不可为空,请填写身份证");
+                    mistakes.add(mistake);
+                    continue;
+                }
+
+                // 判断身份证号码位数
+                if (oneData.get(1).length() != 18) {
+                    ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
+                    index++;
+                    setPensionAuthMistake(oneData, mistake);
+                    mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setIdCard(oneData.get(1).toUpperCase());
+                // 根据身份证号码解析年龄以及性别
+                // 获取用户生日
+                String birthday = vo.getIdCard().substring(6, 14);
+                if (StringUtils.isNotEmpty(birthday)) {
+                    String year = birthday.substring(0, 4);
+                    String month = birthday.substring(4, 6);
+                    String day = birthday.substring(6, 8);
+                    vo.setBirthday(year + "-" + month + "-" + day);
+                }
+                // //设置用户年龄
+                // vo.setAge(AgeUtils.getAgeFromBirthTime(birthday));
+                // 获取用户性别
+                int sex = Integer.parseInt(vo.getIdCard().substring(16, 17));
+                if (sex % 2 == 1) {
+                    vo.setSex(PopulSexEnum.nan.getCode());
+                } else {
+                    vo.setSex(PopulSexEnum.nv.getCode());
+                }
+
+                if (StringUtils.isNotEmpty(oneData.get(2))) {
+                    vo.setPhone(oneData.get(2));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(3))) {
+                    vo.setNowAddress(oneData.get(3));
+                }
+                if (StringUtils.isEmpty(oneData.get(4))) {
+                    index++;
+                    ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
+                    setPensionAuthMistake(oneData, mistake);
+                    mistake.setMistake("认证时间不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setAuthDate(DateUtil.parse(oneData.get(4).trim(), parsePatterns));
+                if (StringUtils.isEmpty(oneData.get(5))) {
+                    index++;
+                    ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
+                    setPensionAuthMistake(oneData, mistake);
+                    mistake.setMistake("认证期数不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setAuthPeriod(oneData.get(5));
+                if (StringUtils.isNotEmpty(oneData.get(6))) {
+                    vo.setMark(oneData.get(6));
+                }
+
+                voList.add(vo);
+                index++;
+            }
+            log.info("开始进入业务层处理逻辑");
+            R r = communityService.listSavePensionAuthRecordExcelVO(voList, communityId, userId);
+            log.info("业务层处理逻辑完成");
+            if (!R.isOk(r)) {
+                log.info("业务层处理成功");
+                List<ComPensionAuthRecordImportMistakeExcelVO> list =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComPensionAuthRecordImportMistakeExcelVO.class);
+                // String errMsg = r.getMsg();
+                // List<ComMngPopulationImportErrorVO> errorList =
+                // JSON.parseArray(errMsg,ComMngPopulationImportErrorVO.class);
+                // if(!errorList.isEmpty()){
+                // populationImportErrorVOList.addAll(errorList);
+                // }
+                mistakes.addAll(list);
+                log.info("将错误数据存入redis中");
+                valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                log.info("将错误数据存入redis中成功");
+                throw new ServiceException("500", key);
+            } else {
+                log.info("业务层处理逻辑失败");
+                if (!mistakes.isEmpty()) {
+                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中");
+                    valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中成功");
+                    throw new ServiceException("500", key);
+                }
+            }
+        } catch (NumberFormatException e) {
+            log.info("处理数据时失败");
+            e.printStackTrace();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+            // importErrorVO.setErrorPosition("第" + index + "行");
+            // importErrorVO.setErrorMsg("数据格式有误,请检查文档内数据");
+            // populationImportErrorVOList.add(importErrorVO);
+            log.error("数据格式有误,第" + index + "行");
+            throw new ServiceException("500", "导入失败111");
+        }
+    }
+
+    private void setPensionAuthMistake(Map<Integer, String> map, ComPensionAuthRecordImportMistakeExcelVO vo) {
+        vo.setName(map.get(0));
+        vo.setIdCard(map.get(1));
+        vo.setPhone(map.get(2));
+        vo.setNowAddress(map.get(3));
+        vo.setAuthDate(map.get(4));
+        vo.setIsAlive(map.get(5));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/AddIdentityAuthDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/AddIdentityAuthDTO.java
new file mode 100644
index 0000000..23ea7d9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/AddIdentityAuthDTO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import com.panzhihua.common.model.helper.sensitive.Sensitive;
+import com.panzhihua.common.model.helper.sensitive.SensitiveStrategy;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: AddIdentityAuthDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 新增身份认证
+ * @author: hans
+ * @date: 2021/09/03 9:43
+ */
+@Data
+@ApiModel("新增身份认证参数")
+@EncryptDecryptClass
+public class AddIdentityAuthDTO {
+
+    @ApiModelProperty(value = "认证类型(1.高龄认证 2.养老认证)", required = true, allowableValues = "1,2", example = "1")
+    @NotNull(message = "认证类型不能为空")
+    private Integer authType;
+
+    @ApiModelProperty(value = "姓名", required = true, example = "张三")
+    @Sensitive(strategy = SensitiveStrategy.USERNAME)
+    @NotBlank(message = "姓名不能为空")
+    private String name;
+
+    @ApiModelProperty(value = "身份证号", required = true, example = "511321199503241233")
+    @Sensitive(strategy = SensitiveStrategy.ID_CARD)
+    @EncryptDecryptField
+    @NotBlank(message = "身份证号码不能为空")
+    @Size(min = 18, max = 18, message = "请输入18位有效身份证号")
+    private String idCard;
+
+    @ApiModelProperty(value = "现居住地址", required = true, example = "双流小区")
+    @NotBlank(message = "居住地址不能为空")
+    private String address;
+
+    @ApiModelProperty(value = "认证视频url,视频认证时需传入", example = "http://test.video.html")
+    private String authVideo;
+
+    @ApiModelProperty(value = "用户eidToken,人脸核验时需传入")
+    private String eidToken;
+
+    @ApiModelProperty(value = "提交用户", hidden = true)
+    private Long submitUserId;
+
+    @ApiModelProperty(value = "人脸核身结果数据", hidden = true)
+    private String verificationResult;
+
+    @ApiModelProperty(value = "身份认证方式 1.视频认证 2.人脸认证 3.线下认证", hidden = true)
+    private Integer authMethod = 1;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/CancelRecordDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/CancelRecordDTO.java
index 918ad1c..24853dd 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/CancelRecordDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/CancelRecordDTO.java
@@ -22,4 +22,7 @@
     private String remark;
 
     private Integer status;
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussDTO.java
index f17dde6..0f7e50b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussDTO.java
@@ -1,34 +1,39 @@
 package com.panzhihua.common.model.dtos.community;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
 import javax.validation.constraints.Min;
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.validated.AddGroup;
 
+import com.panzhihua.common.validated.PutGroup;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
- * @description: 一起议新增编辑
+ * @description: 议事投票新增编辑
  * @author: huang.hongfa weixin hhf9596 qq 959656820
  * @create: 2021-01-22 15:34
  **/
 @Data
-@ApiModel("一起议新增编辑")
+@ApiModel("议事投票新增编辑")
 public class ComActDiscussDTO {
     @ApiModelProperty("主键")
+    @NotNull(message = "一起议id不能为空", groups = {PutGroup.class})
     private Long id;
 
     @ApiModelProperty("主题")
     @NotBlank(groups = {AddGroup.class}, message = "主题不能为空")
     private String discussSubject;
 
-    @ApiModelProperty("类型 1 图文 2 投票")
+    @ApiModelProperty("类型 1 议事 2 投票")
     @Min(value = 1, groups = {AddGroup.class}, message = "类型不能为空")
     private Integer type;
 
@@ -56,4 +61,39 @@
     @ApiModelProperty("选项集合")
     private List<ComActDiscussOptionDTO> discussOptions;
 
+    @ApiModelProperty(value = "单张图片宽度")
+    private BigDecimal imgWidth;
+
+    @ApiModelProperty(value = "单张图片高度")
+    private BigDecimal imgHeight;
+
+    @ApiModelProperty(value = "投票开始时间(格式:yyyy-MM-dd HH:mm:ss)")
+    private String startTime;
+
+    @ApiModelProperty(value = "投票结束时间(格式:yyyy-MM-dd HH:mm:ss)")
+    private String endTime;
+
+    @ApiModelProperty(value = "是否可重复投票(1.是 2.否)")
+    private Integer isRepeat;
+
+    @ApiModelProperty(value = "每人可投票数")
+    private Integer count;
+
+    @ApiModelProperty(value = "是否是小程序用户", hidden = true)
+    private Boolean isApplets;
+
+    @ApiModelProperty(value = "当前登录用户信息", hidden = true)
+    private LoginUserInfoVO loginUserInfo;
+
+    @ApiModelProperty("投票结果")
+    @NotBlank(message = "投票结果不能为空", groups = {PutGroup.class})
+    private String publishResult;
+
+    /**
+     * 类型 1 议事 2 投票
+     */
+    public interface type{
+        int ys = 1;
+        int tp = 2;
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussOptionUserDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussOptionUserDTO.java
index 578e6b5..f55a4b1 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussOptionUserDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussOptionUserDTO.java
@@ -4,6 +4,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
  * @description: 选项投票
@@ -14,8 +16,8 @@
 @ApiModel("选项投票")
 public class ComActDiscussOptionUserDTO {
 
-    @ApiModelProperty("一起议选项id")
-    private Long discussOptionId;
+    @ApiModelProperty("一起议选项id集合")
+    private List<Long> discussOptionIds;
 
     @ApiModelProperty("投票人id")
     private Long userId;
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActWorkGuideDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActWorkGuideDTO.java
index 7a81f56..49bcb1a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActWorkGuideDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActWorkGuideDTO.java
@@ -34,6 +34,9 @@
     @Length(groups = {AddGroup.class}, max = 5000)
     private String content;
 
+    @ApiModelProperty("所属分类")
+    private Integer classify;
+
     @ApiModelProperty("办理时间")
     private String timeAt;
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationEditDTO.java
index a3fb505..5983723 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationEditDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationEditDTO.java
@@ -6,6 +6,7 @@
 import javax.validation.constraints.NotBlank;
 
 import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import com.panzhihua.common.model.vos.community.*;
 import com.panzhihua.common.validated.PutGroup;
 
 import io.swagger.annotations.ApiModel;
@@ -75,4 +76,37 @@
     @ApiModelProperty("房屋信息请求参数")
     private List<ComMngPopulationHouseEditDTO> houseEditDTOList;
 
+    @ApiModelProperty("吸毒信息")
+    private ComDrugPopulationVO comDrugPopulationVO;
+
+    @ApiModelProperty("社区矫正信息")
+    private ComCorrectPopulationVO comCorrectPopulationVO;
+
+    @ApiModelProperty("精神障碍信息")
+    private ComMajorPopulationVO comMajorPopulationVO;
+
+    @ApiModelProperty("邪教信息")
+    private ComCultPopulationVO comCultPopulationVO;
+
+    @ApiModelProperty("刑释信息")
+    private ComRehabilitationPopulationVO comRehabilitationPopulationVO;
+
+    @ApiModelProperty("上访信息")
+    private ComKeyPopulationVO comKeyPopulationVO;
+
+    @ApiModelProperty("退役军人信息")
+    private ComVeteransPopulationVO comVeteransPopulationVO;
+
+    @ApiModelProperty("残疾人信息")
+    private ComDisabilityPopulationVO comDisabilityPopulationVO;
+
+    @ApiModelProperty("低保户信息")
+    private ComLowSecurityPopulationVO comLowSecurityPopulationVO;
+
+    @ApiModelProperty("高龄老人信息")
+    private ComElderAuthElderliesVO comElderAuthElderliesVO;
+
+    @ApiModelProperty("养老人员信息")
+    private ComPensionAuthPensionerVO comPensionAuthPensionerVO;
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwDangerReportEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwDangerReportEditDTO.java
new file mode 100644
index 0000000..a24d145
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwDangerReportEditDTO.java
@@ -0,0 +1,221 @@
+package com.panzhihua.common.model.dtos.community;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @title: ComSwDangerReportEditDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 编辑隐患报告DTO
+ * @author: txb
+ * @date: 2021/09/08 16:16
+ */
+
+@Data
+@ApiModel("编辑隐患报告DTO")
+public class ComSwDangerReportEditDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 隐患报告id
+     */
+    @ApiModelProperty("隐患报告id")
+    private Long id;
+
+    /**
+     * 巡查时间
+     */
+    @ApiModelProperty("巡查时间")
+    private String patrolTime;
+
+    /**
+     * (取字典表国家标准编码)巡查类型(1.防火巡查2.防汛巡查3.防疫巡查)
+     */
+    @ApiModelProperty("巡查类型(1.防火巡查2.防汛巡查3.防疫巡查),多条以逗号隔开")
+    private String patrolType;
+
+    /**
+     * 巡查领导
+     */
+    @ApiModelProperty("巡查领导")
+    private String patrolLeader;
+
+    /**
+     * 巡查人员
+     */
+    @ApiModelProperty("巡查人员id")
+    private String patrolPerson;
+
+    /**
+     * 巡查地址
+     */
+    @ApiModelProperty("巡查地址")
+    private String address;
+
+    /**
+     * 巡查记录
+     */
+    @ApiModelProperty("巡查记录")
+    private String recordContent;
+
+    /**
+     * 发现记录
+     */
+    @ApiModelProperty("发现记录")
+    private String findRecord;
+
+    /**
+     * 记录照片
+     */
+    @ApiModelProperty("记录照片")
+    private String recordPhoto;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+
+    /**
+     * 接班领导
+     */
+    @ApiModelProperty("接班领导")
+    private String successionLeader;
+
+    /**
+     * 接班人员
+     */
+    @ApiModelProperty("接班人员")
+    private String successionPerson;
+
+    /**
+     * 接班时间
+     */
+    @ApiModelProperty("接班时间")
+    private String successionTime;
+
+    /**
+     * 是否存在隐患(1是 、0否)
+     */
+    @ApiModelProperty("是否存在隐患(1是 、0否)")
+    private Integer isHiddenDanger;
+
+    /**
+     * 隐患名称
+     */
+    @ApiModelProperty("隐患名称")
+    private String dangerName;
+
+    @ApiModelProperty("原隐患名称")
+    private String dagerName;
+
+    /**
+     * 排查时间
+     */
+    @ApiModelProperty("排查时间")
+    private String checkTime;
+
+    /**
+     * 主体部门、单位或个人全称
+     */
+    @ApiModelProperty("主体部门、单位或个人全称")
+    private String unitName;
+
+    /**
+     * 隐患简述
+     */
+    @ApiModelProperty("隐患简述")
+    private String dangerDescription;
+
+    @ApiModelProperty("原隐患简述")
+    private String dagerDescription;
+
+    /**
+     * 是否立即整改(1是 、0否)
+     */
+    @ApiModelProperty("是否立即整改(1是 、0否)")
+    private Integer isRectifyImmediately;
+
+    /**
+     * 社区处理建议
+     */
+    @ApiModelProperty("社区处理建议")
+    private String communitySuggestion;
+
+    /**
+     * 街道安全人员管理建议
+     */
+    @ApiModelProperty("街道安全人员管理建议")
+    private String streetSuggestion;
+
+    /**
+     * 承办记录
+     */
+    @ApiModelProperty("承办记录")
+    private String undertakeRecord;
+
+    /**
+     * 领导意见
+     */
+    @ApiModelProperty("领导意见")
+    private String leaderSuggestion;
+
+    /**
+     * 风险等级(1.红色预警 2.橙色预警 3.黄色预警 4.蓝色预警)
+     */
+    @ApiModelProperty("风险等级(1.红色预警 2.橙色预警 3.黄色预警 4.蓝色预警)")
+    private String dangerLevel;
+
+    /**
+     * 指派人员
+     */
+    @ApiModelProperty("指派人员")
+    private String assignPerson;
+
+    /**
+     * 采取措施
+     */
+    @ApiModelProperty("采取措施")
+    private String takeSteps;
+
+    /**
+     * 采取措施照片
+     */
+    @ApiModelProperty("采取措施照片")
+    private String stepsPhoto;
+
+    /**
+     * 整改人员
+     */
+    @ApiModelProperty("整改人员id")
+    private String rectifyPerson;
+
+    /**
+     * 修改人员
+     */
+    @ApiModelProperty("修改人员")
+    private Long updateBy;
+
+    /**
+     * 巡查类型
+     */
+    public interface patrolType {
+        int huo = 1;
+        int xun = 2;
+        int yi = 3;
+    }
+
+    /**
+     * 是否
+     */
+    public interface isOk {
+        int yes = 1;
+        int no = 0;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordEditDTO.java
new file mode 100644
index 0000000..9c21563
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordEditDTO.java
@@ -0,0 +1,124 @@
+package com.panzhihua.common.model.dtos.community;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @title: ComSwPatrolRecordEditDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 编辑巡查记录DTO
+ * @author: txb
+ * @date: 2021/09/08 16:16
+ */
+@Data
+@ApiModel("编辑巡查记录DTO")
+public class ComSwPatrolRecordEditDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 巡查记录id
+     */
+    @ApiModelProperty("巡查记录id")
+    private Long id;
+
+    /**
+     * 巡查时间
+     */
+    @ApiModelProperty("巡查时间")
+    private String patrolTime;
+
+    /**
+     * (取字典表国家标准编码)巡查类型(1.防火巡查2.防汛巡查3.防疫巡查)
+     */
+    @ApiModelProperty("巡查类型(1.防火巡查2.防汛巡查3.防疫巡查),多条以逗号隔开")
+    private String patrolType;
+
+    /**
+     * 巡查领导
+     */
+    @ApiModelProperty("巡查领导id")
+    private String patrolLeader;
+
+    /**
+     * 巡查人员
+     */
+    @ApiModelProperty("巡查人员id")
+    private String patrolPerson;
+
+    /**
+     * 巡查地址
+     */
+    @ApiModelProperty("巡查地址")
+    private String address;
+
+    /**
+     * 巡查记录
+     */
+    @ApiModelProperty("巡查记录")
+    private String recordContent;
+
+    /**
+     * 发现记录
+     */
+    @ApiModelProperty("发现记录")
+    private String findRecord;
+
+    /**
+     * 记录照片
+     */
+    @ApiModelProperty("记录照片")
+    private String recordPhoto;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+
+    /**
+     * 接班领导
+     */
+    @ApiModelProperty("接班领导")
+    private String successionLeader;
+
+    /**
+     * 接班人员
+     */
+    @ApiModelProperty("接班人员")
+    private String successionPerson;
+
+    /**
+     * 接班时间
+     */
+    @ApiModelProperty("接班时间")
+    private String successionTime;
+
+    /**
+     * 修改人员
+     */
+    @ApiModelProperty("修改人员")
+    private Long updateBy;
+
+    /**
+     * 巡查类型
+     */
+    public interface patrolType {
+        int huo = 1;
+        int xun = 2;
+        int yi = 3;
+    }
+
+    /**
+     * 是否
+     */
+    public interface isOk {
+        int yes = 1;
+        int no = 0;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwSafetyWorkEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwSafetyWorkEditDTO.java
new file mode 100644
index 0000000..6aaf9db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwSafetyWorkEditDTO.java
@@ -0,0 +1,122 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @title: ComSwSafetyWorkEditDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 安全工作记录DTO
+ * @author: txb
+ * @date: 2021/09/08 16:16
+ */
+@Data
+@ApiModel("安全工作记录DTO")
+public class ComSwSafetyWorkEditDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 安全工作记录id
+     */
+    @ApiModelProperty("安全工作记录id")
+    private Long id;
+
+    /**
+     * 巡查时间
+     */
+    @ApiModelProperty("巡查时间")
+    private String patrolTime;
+
+    /**
+     * (取字典表国家标准编码)巡查类型(1.防火巡查2.防汛巡查3.防疫巡查)
+     */
+    @ApiModelProperty("巡查类型(1.防火巡查2.防汛巡查3.防疫巡查),多条以逗号隔开")
+    private String patrolType;
+
+    /**
+     * 巡查领导
+     */
+    @ApiModelProperty("巡查领导id")
+    private String patrolLeader;
+
+    /**
+     * 巡查人员
+     */
+    @ApiModelProperty("巡查人员id")
+    private String patrolPerson;
+
+    /**
+     * 巡查地址
+     */
+    @ApiModelProperty("巡查地址")
+    private String address;
+
+    /**
+     * 巡查记录
+     */
+    @ApiModelProperty("巡查记录")
+    private String recordContent;
+
+    /**
+     * 发现记录
+     */
+    @ApiModelProperty("发现记录")
+    private String findRecord;
+
+    /**
+     * 记录照片
+     */
+    @ApiModelProperty("记录照片")
+    private String recordPhoto;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+
+    /**
+     * 接班领导
+     */
+    @ApiModelProperty("接班领导")
+    private String successionLeader;
+
+    /**
+     * 接班人员
+     */
+    @ApiModelProperty("接班人员")
+    private String successionPerson;
+
+    /**
+     * 接班时间
+     */
+    @ApiModelProperty("接班时间")
+    private String successionTime;
+
+    /**
+     * 修改人员
+     */
+    @ApiModelProperty("修改人员")
+    private Long updateBy;
+
+    /**
+     * 巡查类型
+     */
+    public interface patrolType {
+        int huo = 1;
+        int xun = 2;
+        int yi = 3;
+    }
+
+    /**
+     * 是否
+     */
+    public interface isOk {
+        int yes = 1;
+        int no = 0;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/DiscussVoteOptionDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/DiscussVoteOptionDTO.java
new file mode 100644
index 0000000..2824701
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/DiscussVoteOptionDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.List;
+
+import javax.validation.constraints.NotEmpty;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: DiscussVoteOptionDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 一起议投票请求参数
+ * @author: hans
+ * @date: 2021/09/16 17:03
+ */
+@Data
+@ApiModel("一起议投票请求参数")
+public class DiscussVoteOptionDTO {
+
+    @ApiModelProperty("主键")
+    @NotEmpty(message = "投票选项不能为空")
+    private List<Long> optionIds;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthElderlyDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthElderlyDTO.java
index effbc76..76364d7 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthElderlyDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthElderlyDTO.java
@@ -24,9 +24,9 @@
     @ApiModelProperty(value = "身份证号码")
     private String idCard;
 
-    @ApiModelProperty(value = "是否健在", example = "1是,2否")
+    @ApiModelProperty(value = "是否健在(1是,2否)", example = "1是,2否")
     private Integer isExist;
 
-    @ApiModelProperty(value = "是否办理高龄津贴", example = "1是,2否")
+    @ApiModelProperty(value = "是否办理高龄津贴(1是,2否)", example = "1是,2否")
     private Integer isBigAge;
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/GetIdentityEidTokenDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/GetIdentityEidTokenDTO.java
new file mode 100644
index 0000000..c4899cb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/GetIdentityEidTokenDTO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import com.panzhihua.common.model.helper.sensitive.Sensitive;
+import com.panzhihua.common.model.helper.sensitive.SensitiveStrategy;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: GetIdentityEidTokenDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 获取身份认证人脸核验token参数
+ * @author: hans
+ * @date: 2021/09/13 11:07
+ */
+@Data
+@ApiModel("获取身份认证人脸核验token参数")
+@EncryptDecryptClass
+public class GetIdentityEidTokenDTO {
+
+    @ApiModelProperty(value = "认证类型(1.高龄认证 2.养老认证)", required = true, allowableValues = "1,2", example = "1")
+    @NotNull(message = "认证类型不能为空")
+    private Integer authType;
+
+    @ApiModelProperty(value = "姓名", required = true, example = "张三")
+    @Sensitive(strategy = SensitiveStrategy.USERNAME)
+    @NotBlank(message = "姓名不能为空")
+    private String name;
+
+    @ApiModelProperty(value = "身份证号", required = true, example = "511321199503241233")
+    @Sensitive(strategy = SensitiveStrategy.ID_CARD)
+    @EncryptDecryptField
+    @NotBlank(message = "身份证号码不能为空")
+    @Size(min = 18, max = 18, message = "请输入18位有效身份证号")
+    private String idCard;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageActWorkGuideDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageActWorkGuideDTO.java
index 8434efc..3f4ad90 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageActWorkGuideDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageActWorkGuideDTO.java
@@ -15,9 +15,12 @@
     @ApiModelProperty("办事指南标题")
     private String title;
 
+    @ApiModelProperty("所属分类")
+    private Integer classify;
+
     @ApiModelProperty(value = "分页-当前页数", example = "1")
-    private Long pageNum;
+    private Long pageNum = 1L;
 
     @ApiModelProperty(value = "分页-每页记录数", example = "10")
-    private Long pageSize;
+    private Long pageSize = 10L;
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussCommentDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussCommentDTO.java
index 18c5762..9b11a80 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussCommentDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussCommentDTO.java
@@ -15,10 +15,10 @@
 public class PageComActDiscussCommentDTO {
 
     @ApiModelProperty(value = "分页-当前页数", example = "1")
-    private Long pageNum;
+    private Long pageNum = 1L;
 
     @ApiModelProperty(value = "分页-每页记录数", example = "10")
-    private Long pageSize;
+    private Long pageSize = 10L;
 
     @ApiModelProperty(value = "账号")
     private String account;
@@ -34,4 +34,7 @@
 
     @ApiModelProperty(value = "登录用户", required = true)
     private Long loginUserId;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussDTO.java
index dc887b8..1fab134 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussDTO.java
@@ -18,10 +18,10 @@
 @ApiModel("分页查询一起议")
 public class PageComActDiscussDTO {
     @ApiModelProperty(value = "分页-当前页数", example = "1")
-    private Long pageNum;
+    private Long pageNum = 1L;
 
     @ApiModelProperty(value = "分页-每页记录数", example = "10")
-    private Long pageSize;
+    private Long pageSize = 10L;
 
     @ApiModelProperty("主题")
     private String subject;
@@ -45,4 +45,16 @@
 
     @ApiModelProperty("小程序使用 1 表示查询我的议题")
     private Integer isMy;
+
+    @ApiModelProperty("状态(1.未开始 2.进行中 3.待公布 4.已公布 5.已发布)")
+    private Integer status;
+
+    @ApiModelProperty("关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "类型: 1.议事 2.投票,小程序必须传入类型", allowableValues = "1,2")
+    private Integer type;
+
+    @ApiModelProperty(value = "展示状态,小程序获取不同状态的投票列表 1.进行中 2.已结束", allowableValues = "1,2")
+    private Integer displayStatus;
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageElderAuthRecordsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageElderAuthRecordsDTO.java
new file mode 100644
index 0000000..8f21f12
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageElderAuthRecordsDTO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: PageElderAuthRecordsDTO 高龄老人认证记录分页查询参数
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 高龄老人认证记录分页查询参数
+ *
+ * @author txb
+ * @date 2021/9/02 11:12
+ */
+@Data
+@ApiModel("高龄老人认证记录分页查询参数")
+public class PageElderAuthRecordsDTO {
+
+
+    @ApiModelProperty(value = "分页-当前页数,默认1", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数,默认10", example = "10")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "查询关键词")
+    private String searchKey;
+
+    @ApiModelProperty(value = "认证期数")
+    private String authPeriod;
+
+    @ApiModelProperty(value = "认证开始时间")
+    private String authDateBegin;
+
+    @ApiModelProperty(value = "认证结束时间")
+    private String authDateEnd;
+
+    @ApiModelProperty(value = "认证状态(1.已认证 0.未认证)")
+    private String authStatus;
+
+    @ApiModelProperty(value = "审核状态(1.待审核 2.驳回 3.通过)")
+    private Integer approvalStatus;
+
+    @ApiModelProperty(value = "人员类别(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上)")
+    private Integer personnelCategory;
+
+    @ApiModelProperty(value = "是否健在(1.是  0.否)")
+    private Integer isAlive;
+
+    @ApiModelProperty(value = "社区ID", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "认证方式(1.视频认证 2.人脸认证 3.线下认证)")
+    private String authMethod;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthRecordDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthRecordDTO.java
index d1df23d..dca1493 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthRecordDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthRecordDTO.java
@@ -46,6 +46,8 @@
     private Integer type;
     @ApiModelProperty(value = "认证时间(月份)", example = "1")
     private Integer month;
+    @ApiModelProperty(value = "认证时间(年份)", example = "2021")
+    private Integer year;
 
     @ApiModelProperty(value = "排序列", example = "create_at", hidden = true)
     public String getSortColumns() {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageIdentityAuthRecordDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageIdentityAuthRecordDTO.java
new file mode 100644
index 0000000..a0e80cd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageIdentityAuthRecordDTO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.NotNull;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageIdentityAuthRecordDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询身份认证记录
+ * @author: hans
+ * @date: 2021/09/03 9:39
+ */
+@Data
+@ApiModel("分页查询身份认证记录参数")
+@EncryptDecryptClass
+public class PageIdentityAuthRecordDTO {
+
+    @ApiModelProperty(value = "认证类型(1.高龄认证 2.养老认证)", required = true, allowableValues = "1,2", example = "1")
+    @NotNull(message = "认证类型不能为空")
+    private Integer authType;
+
+    @ApiModelProperty(value = "当前页数", required = true, example = "1")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "每页记录数", required = true, example = "10")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "提交用户", example = "1", hidden = true)
+    private Long submitUserId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/discuss/ComActDiscussDetailDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/discuss/ComActDiscussDetailDTO.java
new file mode 100644
index 0000000..187705f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/discuss/ComActDiscussDetailDTO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.dtos.community.discuss;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 议事投票公布结果请求参数
+ */
+@Data
+@ApiModel("议事投票公布结果请求参数")
+public class ComActDiscussDetailDTO {
+
+    @ApiModelProperty("主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+    
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/discuss/ComActDiscussPublishResultDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/discuss/ComActDiscussPublishResultDTO.java
new file mode 100644
index 0000000..f8b5c7f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/discuss/ComActDiscussPublishResultDTO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.dtos.community.discuss;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lyq
+ * 议事投票公布结果请求参数
+ */
+@Data
+@ApiModel("议事投票公布结果请求参数")
+public class ComActDiscussPublishResultDTO {
+
+    @ApiModelProperty("议事投票id")
+    private Long id;
+
+    @ApiModelProperty("公布结果")
+    private String result;
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty("类型(1.新增公布结果  2.修改公布结果)")
+    private Integer type;
+
+    /**
+     * 类型(1.新增公布结果  2.修改公布结果)
+     */
+    public interface type{
+        int add = 1;
+        int edit = 2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/ElderAuthStatisticHeaderDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/ElderAuthStatisticHeaderDTO.java
new file mode 100644
index 0000000..b255024
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/ElderAuthStatisticHeaderDTO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.dtos.community.elder;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 高龄老人认证统计表头查询参数
+ */
+@Data
+@ApiModel("高龄老人认证统计表头查询参数")
+public class ElderAuthStatisticHeaderDTO {
+
+    @ApiModelProperty(value = "认证期数",required = true)
+    private String authPeriod;
+
+    @ApiModelProperty(value = "社区ID", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/PageElderAuthStatisticDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/PageElderAuthStatisticDTO.java
new file mode 100644
index 0000000..5386873
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/PageElderAuthStatisticDTO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.dtos.community.elder;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: PageElderAuthRecordsDTO 高龄老人认证记录分页查询参数
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 高龄老人认证记录分页查询参数
+ *
+ * @author txb
+ * @date 2021/9/02 11:12
+ */
+@Data
+@ApiModel("高龄老人认证记录分页查询参数")
+public class PageElderAuthStatisticDTO {
+
+
+    @ApiModelProperty(value = "分页-当前页数,默认1", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数,默认10", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "认证期数")
+    private String authPeriod;
+
+    @ApiModelProperty(value = "认证状态(1.已认证 2.未认证)")
+    private Integer authStatus;
+
+    @ApiModelProperty(value = "人员类别(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上)")
+    private Integer personnelCategory;
+
+    @ApiModelProperty(value = "是否健在(1.是  0.否)")
+    private Integer isAlive;
+
+    @ApiModelProperty(value = "社区ID", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/PagePensionAuthStatisticDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/PagePensionAuthStatisticDTO.java
new file mode 100644
index 0000000..548bd3a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/PagePensionAuthStatisticDTO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.dtos.community.elder;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: PageElderAuthRecordsDTO 养老认证记录分页查询参数
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 高龄老人认证记录分页查询参数
+ *
+ * @author lyq
+ * @date 2021/9/18 15:12
+ */
+@Data
+@ApiModel("养老认证记录分页查询参数")
+public class PagePensionAuthStatisticDTO {
+
+
+    @ApiModelProperty(value = "分页-当前页数,默认1", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数,默认10", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "认证期数")
+    private String authPeriod;
+
+    @ApiModelProperty(value = "认证状态(1.已认证 2.未认证)")
+    private Integer authStatus;
+
+    @ApiModelProperty(value = "是否健在(1.是  0.否)")
+    private Integer isAlive;
+
+    @ApiModelProperty(value = "社区ID", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/SignElderAuthStatisticDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/SignElderAuthStatisticDTO.java
new file mode 100644
index 0000000..fff8ca6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/SignElderAuthStatisticDTO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.dtos.community.elder;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author lyq
+ * 标记高龄老人认证统计记录请求参数
+ */
+@Data
+@ApiModel("标记高龄老人认证统计记录请求参数")
+public class SignElderAuthStatisticDTO {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "标记内容")
+    private String mark;
+
+    @ApiModelProperty(value = "操作用户id",hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/AddComActNeighborCircleAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/AddComActNeighborCircleAppDTO.java
index a1306b5..7dc3d35 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/AddComActNeighborCircleAppDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/AddComActNeighborCircleAppDTO.java
@@ -30,4 +30,21 @@
 
     @ApiModelProperty(value = "社区id", hidden = true)
     private Long communityId;
+
+    @ApiModelProperty(value = "是否需要审核(1.是 2.否)",hidden = true)
+    private Integer isExamine;
+
+    @ApiModelProperty(value = "微信审核结果(1.通过 2.拒绝)",hidden = true)
+    private Integer wxExamineResult;
+
+    @ApiModelProperty("用户新增邻里圈话题")
+    private String topicName;
+
+    /**
+     * 是否需要审核(1.是 2.否)
+     */
+    public interface isExamine{
+        int yes = 1;
+        int no = 2;
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/AddNeighborCircleTopicAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/AddNeighborCircleTopicAppDTO.java
new file mode 100644
index 0000000..866e807
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/AddNeighborCircleTopicAppDTO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.dtos.neighbor;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 用户添加邻里圈请求参数
+ */
+@Data
+@ApiModel("用户添加邻里圈请求参数")
+public class AddNeighborCircleTopicAppDTO {
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty("邻里圈话题名称")
+    private String name;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleAdminDTO.java
index 7e4822b..199b98f 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleAdminDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleAdminDTO.java
@@ -42,4 +42,7 @@
     @ApiModelProperty("话题名称")
     private String topicName;
 
+    @ApiModelProperty("关键词")
+    private String keyWord;
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleAppDTO.java
index bef2729..ac1168f 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleAppDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleAppDTO.java
@@ -31,4 +31,7 @@
     @ApiModelProperty(value = "用户id", hidden = true)
     private Long userId;
 
+    @ApiModelProperty("关键词")
+    private String keyWord;
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/DeleteNeighborCircleAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/DeleteNeighborCircleAppDTO.java
new file mode 100644
index 0000000..ca86ff8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/DeleteNeighborCircleAppDTO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.dtos.neighbor;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 用户删除邻里圈请求参数
+ */
+@Data
+@ApiModel("用户删除邻里圈请求参数")
+public class DeleteNeighborCircleAppDTO {
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty("邻里圈id")
+    private Long id;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActPictureVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActPictureVO.java
index 5eb161c..482a449 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActPictureVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActPictureVO.java
@@ -1,5 +1,6 @@
 package com.panzhihua.common.model.vos.community;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -26,10 +27,14 @@
     @ApiModelProperty("所属活动id")
     private Long activityId;
 
+    @ApiModelProperty("类型(1.党建 2.节日 3.天气预报 4.疫情 5.灾害预警 6.志愿者)")
+    private Integer type;
+
     @ApiModelProperty("用户id, 和用户信息表的相关id关联")
     private Long userId;
 
     @ApiModelProperty("上传时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createAt;
 
     @ApiModelProperty("上传图片")
@@ -37,4 +42,7 @@
 
     @ApiModelProperty("图片名称")
     private String pictureName;
+
+    @ApiModelProperty("是否系统预置(1.是 0.否)")
+    private Integer sysFlag;
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityVO.java
index 05548ae..bd0e1df 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityVO.java
@@ -1,5 +1,6 @@
 package com.panzhihua.common.model.vos.community;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -92,9 +93,8 @@
     @ApiModelProperty("是否二维码签到 1 是 0否")
     private Integer isQrCode;
 
-    @ApiModelProperty("用户最近签到时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date activitySignInDate;
+    @ApiModelProperty("用户签到记录列表")
+    private List<ComActActRegistVO> activitySignInList;
 
     @ApiModelProperty("联系人姓名")
     private String contactName;
@@ -124,10 +124,10 @@
     private List<ComActActEvaluateVO> comActActEvaluateVOList;
 
     @ApiModelProperty("活动评价总数")
-    private Integer evaluateAmount;
+    private Long evaluateAmount;
 
     @ApiModelProperty("活动评分星级平均数")
-    private Double evaluateLevel;
+    private BigDecimal evaluateLevel;
 
     @ApiModelProperty("当前用户对活动的评分")
     private Integer myRating;
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussCommentVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussCommentVO.java
index d5f4543..55f5712 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussCommentVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussCommentVO.java
@@ -80,4 +80,7 @@
     @ApiModelProperty("评论人用户类型(1.小程序用户(其他均为后台用户))")
     private Integer userType;
 
+    @ApiModelProperty("回复量")
+    private Integer replyNum;
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionUserVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionUserVO.java
new file mode 100644
index 0000000..d3dc3c1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionUserVO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ComActDiscussOptionUserVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 一起议投票记录详情
+ * @author: hans
+ * @date: 2021/09/08 16:14
+ */
+@Data
+@ApiModel("一起议投票记录详情")
+public class ComActDiscussOptionUserVO {
+
+    @ApiModelProperty("投票记录主键id")
+    private Long id;
+
+    @ApiModelProperty("一起议选项id")
+    private Long discussOptionId;
+
+    @ApiModelProperty("投票人id")
+    private Long userId;
+
+    @ApiModelProperty("投票时间")
+    private Date createAt;
+
+    @ApiModelProperty("一起议id")
+    private Long discussId;
+
+    @ApiModelProperty("投票人昵称")
+    private String userNickName;
+
+    @ApiModelProperty("投票人头像")
+    private String imageUrl;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionVO.java
index 4df6f1a..14ef6a0 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionVO.java
@@ -1,5 +1,6 @@
 package com.panzhihua.common.model.vos.community;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -36,6 +37,12 @@
     @ApiModelProperty("投票数量")
     private Integer num;
 
+    @ApiModelProperty("投票总数量")
+    private Integer allNum;
+
     @ApiModelProperty("是否已经投票 1 是 0 否")
     private Integer haveVote = 0;
+
+    @ApiModelProperty("投票选项占比")
+    private BigDecimal percent;
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussVO.java
index 8005ad7..517b47e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussVO.java
@@ -1,5 +1,6 @@
 package com.panzhihua.common.model.vos.community;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -24,7 +25,7 @@
     @ApiModelProperty("主题")
     private String discussSubject;
 
-    @ApiModelProperty("类型 1 图文 2 投票")
+    @ApiModelProperty("类型 1 议事 2 投票")
     private Integer type;
 
     @ApiModelProperty("图片地址 多个用逗号隔开")
@@ -58,6 +59,9 @@
     @ApiModelProperty("点赞数量")
     private Integer signNum;
 
+    @ApiModelProperty("浏览量")
+    private Integer viewsNum;
+
     @ApiModelProperty("发布人名字")
     private String userName;
 
@@ -76,4 +80,60 @@
     @ApiModelProperty("用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台")
     private Integer userType;
 
+    @ApiModelProperty("状态(1.未开始 2.进行中 3.待公布 4.已公布 5.已发布)")
+    private Integer status;
+
+    @ApiModelProperty("公布结果")
+    private String publishResult;
+
+    @ApiModelProperty("公布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date publishAt;
+
+    @ApiModelProperty("发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date releaseAt;
+
+    @ApiModelProperty("投票开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+
+    @ApiModelProperty("投票结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+
+    @ApiModelProperty("参与讨论人数")
+    private Integer joinNum;
+
+    @ApiModelProperty("单张图片宽度")
+    private BigDecimal imgWidth;
+
+    @ApiModelProperty("单张图片高度")
+    private BigDecimal imgHeight;
+
+    @ApiModelProperty("是否可重复投票(1.是 2.否)")
+    private Integer isRepeat;
+
+    @ApiModelProperty("每人票数")
+    private Integer count;
+
+    @ApiModelProperty("议事投票评论列表")
+    private List<ComActDiscussCommentVO> discussCommentList;
+
+    @ApiModelProperty("剩余可投票数")
+    private Integer remainingVotes;
+
+    @ApiModelProperty("已投票记录列表")
+    private List<ComActDiscussOptionUserVO> comActDiscussOptionUserVOList;
+
+    @ApiModelProperty("已参与投票人数")
+    private Integer votedPersonNum;
+
+    /**
+     * 类型 1 议事 2 投票
+     */
+    public interface type{
+        int ys = 1;
+        int tp = 2;
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishFeedbackVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishFeedbackVO.java
new file mode 100644
index 0000000..fed556a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishFeedbackVO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel
+public class ComActMicroWishFeedbackVO {
+    /**
+     * 反馈内容
+     */
+    @ApiModelProperty("反馈内容")
+    private String content;
+
+    /**
+     * 反馈图片
+     */
+    @ApiModelProperty("反馈图片")
+    private String imgUrl;
+
+    /**
+     * 反馈时间
+     */
+    @ApiModelProperty("反馈时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * 反馈人
+     */
+    @ApiModelProperty("反馈人")
+    private String name;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishOperationRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishOperationRecordVO.java
new file mode 100644
index 0000000..e574479
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishOperationRecordVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+@ApiModel
+public class ComActMicroWishOperationRecordVO {
+    /**
+     * 操作内容
+     */
+    @ApiModelProperty("操作内容")
+    private String content;
+
+    /**
+     * 人员姓名
+     */
+    @ApiModelProperty("人员姓名")
+    private String name;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("记录时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+    /**
+     * 操作类型 1已提交 2审核通过 3 驳回 4完成集心 5 分配 6 完成
+     */
+    @ApiModelProperty("操作类型 1已提交 2审核通过 3 驳回 4完成集心 5 分配 6 完成 7反馈 8自动确认")
+    private Integer type;
+
+    @ApiModelProperty("操作备注")
+    private String remark;
+
+    @ApiModelProperty("反馈图片")
+    private String imgUrl;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishVO.java
index 2add8d6..aac3e8f 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishVO.java
@@ -1,15 +1,16 @@
 package com.panzhihua.common.model.vos.community;
 
-import java.util.Date;
-
-import javax.validation.constraints.NotBlank;
-
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.panzhihua.common.validated.AddGroup;
-
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import io.swagger.models.auth.In;
 import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -40,10 +41,10 @@
     private String imageUrl;
 
     @ApiModelProperty("微心愿名称")
-    @NotBlank(groups = {AddGroup.class}, message = "微心愿名称不能为空")
+//    @NotBlank(groups = {AddGroup.class},message = "微心愿名称不能为空")
     private String wishName;
 
-    @ApiModelProperty("状态 1待审核  2待分配 3进行中  4已驳回 5待确认6 已完成")
+    @ApiModelProperty("状态 1待审核  2待分配 3进行中  4已驳回 5待确认6 已完成 7集心中")
     private Integer status;
 
     @ApiModelProperty("集星数")
@@ -78,24 +79,28 @@
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date distributionAt;
 
+    @ApiModelProperty("完成时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date finishAt;
+
     @ApiModelProperty("评分")
     private Integer score;
 
     @ApiModelProperty("详情")
-    @NotBlank(groups = {AddGroup.class}, message = "详情不能为空")
+    @NotBlank(groups = {AddGroup.class},message = "详情不能为空")
     private String detail;
 
     @ApiModelProperty("图片路径列表,逗号分隔")
-    // @NotBlank(groups = {AddGroup.class},message = "图片路径列表不能为空")
+    //@NotBlank(groups = {AddGroup.class},message = "图片路径列表不能为空")
     private String photoPathList;
 
     @ApiModelProperty("当前页数")
-    private Long pageNum;
+    private Long pageNum = 1L;
 
     @ApiModelProperty("每页记录数")
-    private Long pageSize;
+    private Long pageSize = 10L;
 
-    @ApiModelProperty(value = "社区id", hidden = true)
+    @ApiModelProperty(value = "社区id",hidden = true)
     private Long communityId;
 
     @ApiModelProperty("用户评价")
@@ -105,7 +110,7 @@
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date evaluateAt;
 
-    @ApiModelProperty("反馈时间")
+    @ApiModelProperty("集心完成时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date feedbackAt;
 
@@ -124,22 +129,40 @@
     @ApiModelProperty("反馈图片集合,逗号分隔")
     private String feedbackPhotoPathList;
 
-    @ApiModelProperty(value = "操作类型 1 审核通过 2驳回 3分配人员 4发起活动 5反馈", example = "1")
+    @ApiModelProperty(value = "操作类型 1 审核通过 2驳回 3分配人员 4发起活动 5反馈",example = "1")
     private Integer type;
 
-    @ApiModelProperty(value = "小程序请求 1 是 0 不是", hidden = true)
+    @ApiModelProperty(value = "小程序请求 1 是 0 不是",hidden = true)
     private Integer isApplets;
 
-    @ApiModelProperty(value = "是否点赞 1 是 0 不是", example = "1")
+    @ApiModelProperty(value = "是否点赞 1 是 0 不是",example = "1")
     private Integer haveGiveThumbsUp = 0;
 
-    @ApiModelProperty(value = "登录用户", hidden = true)
+    @ApiModelProperty(value = "登录用户",hidden = true)
     private Long userId;
 
-    @ApiModelProperty(value = "社区后台登录用户", hidden = true)
+    @ApiModelProperty(value = "社区后台登录用户",hidden = true)
     private Long backUserId;
 
-    @ApiModelProperty(value = "是否是分页查询微心愿接口调用", hidden = true)
+    @ApiModelProperty(value = "是否是分页查询微心愿接口调用",hidden = true)
     private Integer isPageMyWish;
 
+    @ApiModelProperty(value = "预约社区集心数")
+    private Integer aimNum;
+
+    @ApiModelProperty(value = "反馈列表")
+    private List<ComActMicroWishFeedbackVO> feedbackVOList;
+
+    @ApiModelProperty(value = "操作记录 只有审核和驳回得纪录 其他从当前数据提取")
+    private List<ComActMicroWishOperationRecordVO> operationRecordVOList;
+
+    @ApiModelProperty(value = "下一个id数组")
+    private List<Long> idList;
+
+    @ApiModelProperty(value = "单张图片宽度")
+    private BigDecimal imgWidth;
+
+    @ApiModelProperty(value = "单张图片高度")
+    private BigDecimal imgHeight;
 }
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAnswerContentVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAnswerContentVO.java
index 76bc697..1db85be 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAnswerContentVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAnswerContentVO.java
@@ -31,9 +31,13 @@
     private Long selectionId;
     @ApiModelProperty("答题记录id")
     private Long reserveRecordId;
+    @ApiModelProperty("题目id")
+    private Long reserveSubId;
     @ApiModelProperty("填报时间")
     private Date time;
     @ApiModelProperty("用户昵称")
     private String nickName;
+    @ApiModelProperty("选项类型(0 单选  1 多选 2 输入框  3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框 10图片选择 11文件上传)")
+    private Integer optionType;
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireSubVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireSubVO.java
index bd6ed2e..ceca016 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireSubVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireSubVO.java
@@ -9,7 +9,7 @@
 public class ComActQuestnaireSubVO {
     @ApiModelProperty("id")
     private Long id;
-    @ApiModelProperty("类型 0单选1多选2问答题")
+    @ApiModelProperty("类型 0 单选  1 多选 2 输入框  3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框")
     private int type;
     @ApiModelProperty("题目内容")
     private String content;
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideAppletsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideAppletsVO.java
new file mode 100644
index 0000000..196acea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideAppletsVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.google.common.collect.Lists;
+import com.panzhihua.common.validated.AddGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+/**
+ * 办事指南分类列表
+ */
+@Data
+@ApiModel("办事指南分类列表")
+public class ComActWorkGuideAppletsVO {
+
+    @ApiModelProperty("分类id")
+    private Long id;
+
+    @ApiModelProperty("分类名称")
+    private String classifyName;
+
+    @ApiModelProperty("分类图标url")
+    private String pictureUrl;
+
+    @ApiModelProperty("办事指南数量")
+    private Integer count;
+
+    @ApiModelProperty("办事指南列表")
+    private List<ComActWorkGuideDetailAppletsVO> guideDetailList = Lists.newArrayList();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideClassifyVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideClassifyVO.java
new file mode 100644
index 0000000..5e8d0e9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideClassifyVO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * title: ComActWorkGuideClassifyVO  社区》办事指南》分类管理展示类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》办事指南》分类管理展示类
+ *
+ * @author txb
+ * @date 2021/8/31 14:21
+ */
+
+@Data
+@ApiModel("办事指南-分类管理")
+public class ComActWorkGuideClassifyVO {
+
+    @ApiModelProperty("自增id")
+    private Long id;
+
+    @ApiModelProperty("分类名称")
+    private String classifyName;
+
+    @ApiModelProperty("图标地址")
+    private String pictureUrl;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("系统预置:1-是 0-否")
+    private Integer sysFlag;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideDetailAppletsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideDetailAppletsVO.java
new file mode 100644
index 0000000..66d46f2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideDetailAppletsVO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.google.common.collect.Lists;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @auther llming
+ * @describe 办事指南
+ */
+@Data
+@ApiModel("办事指南信息")
+public class ComActWorkGuideDetailAppletsVO {
+    @ApiModelProperty("办事指南id")
+    private Long id;
+
+    @ApiModelProperty("办事指南标题")
+    private String title;
+
+    @ApiModelProperty("办事指南内容")
+    private String content;
+
+    @ApiModelProperty("所属分类")
+    private Integer classify;
+
+    @ApiModelProperty("办理时间")
+    private String timeAt;
+
+    @ApiModelProperty("创建时间")
+    private String createAt;
+
+    @ApiModelProperty("办理地点")
+    private String address;
+
+    @ApiModelProperty("咨询电话")
+    private String phone;
+
+    @ApiModelProperty("经度")
+    private String lon;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    private List<ComActWorkGuideMaterialVO> materials = Lists.newArrayList();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideVO.java
index c769fbb..ea1779e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideVO.java
@@ -33,6 +33,12 @@
     @Length(groups = {AddGroup.class}, max = 5000)
     private String content;
 
+    @ApiModelProperty("所属分类")
+    private Integer classify;
+
+    @ApiModelProperty("所属分类名称")
+    private String classifyName;
+
     @ApiModelProperty("办理时间")
     private String timeAt;
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthElderliesVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthElderliesVO.java
new file mode 100644
index 0000000..b9235e2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthElderliesVO.java
@@ -0,0 +1,82 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * title: ComElderAuthElderliesVO  社区政务》高龄老人认证》高龄老人表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区政务》高龄老人认证》高龄老人表实体类
+ *
+ * @author txb
+ * @date 2021/9/01 14:12
+ */
+
+@Data
+@ApiModel("高龄认证记录")
+public class ComElderAuthElderliesVO {
+
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "人口id")
+    private Long populationId;
+
+    @ApiModelProperty(value = "街道id")
+    private Long streetId;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    @ApiModelProperty(value = "性别")
+    private Integer sex;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "出生日期")
+    private String birthday;
+
+    @ApiModelProperty(value = "人员类别(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上)")
+    private Integer personnelCategory;
+
+    @ApiModelProperty(value = "是否高龄老人登记(1.是  0.否)")
+    private Integer isRegister;
+
+    @ApiModelProperty(value = "是否健在(1.是  0.否)")
+    private Integer isAlive;
+
+    @ApiModelProperty(value = "居住地址")
+    private String address;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "高龄津贴开始领取日期")
+    private Date receiveAllowanceBegin;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    @ApiModelProperty(value = "创建用户")
+    private Long createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "修改用户")
+    private Long updateBy;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordExcleVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordExcleVO.java
new file mode 100644
index 0000000..7bf775a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordExcleVO.java
@@ -0,0 +1,73 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: ComElderAuthRecordVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 高龄认证记录
+ * @author: hans
+ * @date: 2021/09/01 16:16
+ */
+@Data
+@ApiModel("高龄认证记录")
+@EncryptDecryptClass
+public class ComElderAuthRecordExcleVO {
+
+    @ExcelProperty(value = "提交用户", index = 0)
+    private String submitUserName;
+
+    @ExcelProperty(value = "联系电话", index = 1)
+    private String phone;
+
+    @ExcelProperty(value = "认证姓名", index = 2)
+    private String name;
+
+    @ExcelProperty(value = "身份证号", index = 3)
+    @EncryptDecryptField
+    private String idCard;
+
+    @ExcelProperty(value = "性别", index = 4)
+    private String sex;
+
+    @ExcelProperty(value = "年龄", index = 5)
+    private Integer age;
+
+    @ExcelProperty(value = "出生日期", index = 6)
+    private String birthday;
+
+    @ExcelProperty(value = "人员类别", index = 7)
+    private String personnelCategory;
+
+    @ExcelProperty(value = "现居住地址", index = 8)
+    private String address;
+
+    @ExcelProperty(value = "健在", index = 9)
+    private String isAlive;
+
+    @ExcelProperty(value = "认证期数", index = 10)
+    private String authPeriod;
+
+    @ExcelProperty(value = "认证时间", index = 11)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date authDate;
+
+    @ExcelProperty(value = "认证方式", index = 12)
+    private String authMethod;
+
+    @ExcelProperty(value = "标记", index = 13)
+    private String mark;
+
+    @ExcelProperty(value = "审核状态", index = 14)
+    private String approvalStatus;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordImportExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordImportExcelVO.java
new file mode 100644
index 0000000..57e6725
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordImportExcelVO.java
@@ -0,0 +1,62 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.google.common.collect.Lists;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @description: 批量导入吸毒人员
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComElderAuthRecordImportExcelVO implements Serializable {
+
+    @ExcelProperty(value = "认证姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "认证身份证号码", index = 1)
+    @EncryptDecryptField
+    private String idCard;
+
+    @ExcelProperty(value = "联系电话", index = 2)
+    private String phone;
+
+    @ExcelProperty(value = "现居住地址", index = 3)
+    private String nowAddress;
+
+    @ExcelProperty(value = "认证时间", index = 4)
+    private Date authDate;
+
+    @ExcelProperty(value = "认证期数", index = 5)
+    private String authPeriod;
+
+    @ExcelProperty(value = "标记", index = 6)
+    private String mark;
+
+    /**
+     * 年龄
+     */
+    private Integer age;
+
+    /**
+     * 性别(1.男 2.女)
+     */
+    private Integer sex;
+
+    /**
+     * 出生年月日
+     */
+    private String birthday;
+
+    /**
+     * 地址
+     */
+    private String address;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordImportMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordImportMistakeExcelVO.java
new file mode 100644
index 0000000..0f05227
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordImportMistakeExcelVO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @description: 批量导入吸毒人员
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComElderAuthRecordImportMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "认证姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "认证身份证号码", index = 1)
+    @EncryptDecryptField
+    private String idCard;
+
+    @ExcelProperty(value = "联系电话", index = 2)
+    private String phone;
+
+    @ExcelProperty(value = "现居住地址", index = 3)
+    private String nowAddress;
+
+    @ExcelProperty(value = "认证时间", index = 4)
+    private String authDate;
+
+    @ExcelProperty(value = "认证期数", index = 5)
+    private String authPeriod;
+
+    @ExcelProperty(value = "标记", index = 6)
+    private String mark;
+
+    @ExcelProperty(value = "错误信息", index = 7)
+    private String mistake;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordStatisticExcleVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordStatisticExcleVO.java
new file mode 100644
index 0000000..c64bd83
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordStatisticExcleVO.java
@@ -0,0 +1,68 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: ComElderAuthRecordStatisticExcleVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 高龄认证记录统计
+ * @author: hans
+ * @date: 2021/09/01 16:16
+ */
+@Data
+@ApiModel("高龄认证记录统计")
+@EncryptDecryptClass
+public class ComElderAuthRecordStatisticExcleVO {
+
+    @ExcelProperty(value = "联系电话", index = 0)
+    private String phone;
+
+    @ExcelProperty(value = "认证姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份证号", index = 2)
+    @EncryptDecryptField
+    private String idCard;
+
+    @ExcelProperty(value = "性别", index = 3)
+    private String sex;
+
+    @ExcelProperty(value = "年龄", index = 4)
+    private Integer age;
+
+    @ExcelProperty(value = "出生日期", index = 6)
+    private String birthday;
+
+    @ExcelProperty(value = "人员类别", index = 5)
+    private String personnelCategory;
+
+    @ExcelProperty(value = "现居住地址", index = 7)
+    private String address;
+
+    @ExcelProperty(value = "健在", index = 8)
+    private String isAlive;
+
+    @ExcelProperty(value = "认证期数", index = 9)
+    private String authPeriod;
+
+    @ExcelProperty(value = "认证时间", index = 10)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date authDate;
+
+    @ExcelProperty(value = "认证方式", index = 11)
+    private String authMethod;
+
+
+    @ExcelProperty(value = "标记", index = 12)
+    private String mark;
+
+    @ExcelProperty(value = "认证状态", index = 13)
+    private String authStatus;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordVO.java
new file mode 100644
index 0000000..c5eb12d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordVO.java
@@ -0,0 +1,126 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ComElderAuthRecordVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 高龄认证记录
+ * @author: hans
+ * @date: 2021/09/01 16:16
+ */
+@Data
+@ApiModel("高龄认证记录")
+@EncryptDecryptClass
+public class ComElderAuthRecordVO {
+
+    @ApiModelProperty(value = "自增id")
+    private Long id;
+
+    @ApiModelProperty(value = "高龄老人id")
+    private Long elderliesId;
+
+    @ApiModelProperty(value = "认证期数")
+    private String authPeriod;
+
+    @ApiModelProperty(value = "提交用户id")
+    private Long submitUserId;
+
+    @ApiModelProperty(value = "认证方式(1.视频认证 2.人脸认证)")
+    private Integer authMethod;
+
+    @ApiModelProperty(value = "提交用户姓名")
+    private String submitUserName;
+
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "身份证号")
+    @EncryptDecryptField
+    private String idCard;
+
+    @ApiModelProperty(value = "性别(1.男 2.女 3.其他)")
+    private String sex;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "出生日期")
+    private String birthday;
+
+    @ApiModelProperty(value = "人员类别(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上)")
+    private Integer personnelCategory;
+
+    @ApiModelProperty(value = "是否高龄老人登记(1.是  0.否)")
+    private Integer isRegister;
+
+    @ApiModelProperty(value = "是否健在(1.是  0.否)")
+    private Integer isAlive;
+
+    @ApiModelProperty(value = "居住地址")
+    private String address;
+
+    @ApiModelProperty(value = "认证视频url")
+    private String authVideo;
+
+    @ApiModelProperty(value = "审核人员id")
+    private Long approverId;
+
+    @ApiModelProperty(value = "审核人员姓名")
+    private String approverName;
+
+    @ApiModelProperty(value = "审核状态(1.待审核 2.驳回 3.通过)")
+    private Integer approvalStatus;
+
+    @ApiModelProperty(value = "审核时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date approvalDate;
+
+    @ApiModelProperty(value = "标记")
+    private String mark;
+
+    @ApiModelProperty(value = "驳回原因")
+    private String rejectReason;
+
+    @ApiModelProperty(value = "认证状态")
+    private Integer authStatus;
+
+    @ApiModelProperty(value = "认证时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date authDate;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "本期认证总人数")
+    private Integer authAmount;
+
+    @ApiModelProperty(value = "本期认证成功人数")
+    private Integer authSucceedAmount;
+
+    @ApiModelProperty(value = "本期未认证人数")
+    private Integer authNoAmount;
+
+    @ApiModelProperty(value = "待审核状态id集合列表")
+    private List<Long> nextIds;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthElderlyVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthElderlyVO.java
index 616dced..e592081 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthElderlyVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthElderlyVO.java
@@ -31,7 +31,6 @@
     private String name;
 
     @ApiModelProperty(value = "身份证号码")
-    @Sensitive(strategy = SensitiveStrategy.ID_CARD)
     @EncryptDecryptField
     private String idCard;
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthRecordForCommunityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthRecordForCommunityVO.java
index 0e10ca0..9c62f6e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthRecordForCommunityVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthRecordForCommunityVO.java
@@ -42,7 +42,6 @@
     private Date updateAt;
 
     @ApiModelProperty(value = "身份证")
-    @Sensitive(strategy = SensitiveStrategy.ID_CARD)
     @EncryptDecryptField
     private String idCard;
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationElderExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationElderExcelVO.java
new file mode 100644
index 0000000..53de524
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationElderExcelVO.java
@@ -0,0 +1,132 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.google.common.collect.Lists;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * title: ComMngPopulationElderExcelVO  批量导入高龄老人
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 批量导入高龄老人
+ *
+ * @author txb
+ * @date 2021/9/01 13:12
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationElderExcelVO {
+
+    @ExcelProperty(value = "姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 1)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "民族", index = 2)
+    private String nation;
+
+    @ExcelProperty(value = "政治面貌", index = 3)
+    private Integer politicalOutlook;
+
+    @ExcelProperty(value = "是否租住", index = 4)
+    private Integer isRent;
+
+    @ExcelProperty(value = "街/路/巷", index = 5)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 6)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 7)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 8)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 9)
+    private String houseNo;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 10)
+    private Integer houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 11)
+    private Integer housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 12)
+    private Integer controlStatus;
+
+    @ExcelProperty(value = "联系方式", index = 13)
+    private String phone;
+
+    @ExcelProperty(value = "籍贯", index = 14)
+    private String nativePlace;
+
+    @ExcelProperty(value = "文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)", index = 15)
+    private Integer cultureLevel;
+
+    @ExcelProperty(value = "婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)", index = 16)
+    private Integer marriage;
+
+    @ExcelProperty(value = "健康状况", index = 17)
+    private String healthy;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 18)
+    private Integer outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 19)
+    private String censusRegister;
+
+    @ExcelProperty(value = "高龄老人登记(是/否)", index = 20)
+    private Integer isRegister;
+
+    @ExcelProperty(value = "健在(是/否)", index = 21)
+    private Integer isAlive;
+
+    @ExcelProperty(value = "*高龄津贴开始领取时间(年-月-日)", index = 22)
+    private Date receiveAllowanceBegin;
+
+    @ExcelProperty(value = "*现居住地址", index = 23)
+    private String nowAddress;
+
+    @ExcelProperty(value = "备注", index = 24)
+    private String remark;
+
+    /**
+     * 去重字段,使用(姓名+身份证号+街路巷+小区号+楼牌号+单元号+户室)组合字段进行MD5加密实现去重
+     */
+    private String distinctPass;
+
+    /**
+     * 年龄
+     */
+    private Integer age;
+
+    /**
+     * 性别(1.男 2.女)
+     */
+    private Integer sex;
+
+    /**
+     * 出生年月日
+     */
+    private String birthday;
+
+    /**
+     * 扩展字段用逗号隔开
+     */
+    private List<String> userTagStr = Lists.newArrayList();
+
+    private Long houseId;
+
+    /**
+     * 地址
+     */
+    private String address;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationElderMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationElderMistakeExcelVO.java
new file mode 100644
index 0000000..2794a29
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationElderMistakeExcelVO.java
@@ -0,0 +1,101 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.google.common.collect.Lists;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * title: ComMngPopulationElderExcelVO  批量导入高龄老人
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 批量导入高龄老人
+ *
+ * @author txb
+ * @String 2021/9/01 13:12
+ */
+@Data
+public class ComMngPopulationElderMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 1)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "民族", index = 2)
+    private String nation;
+
+    @ExcelProperty(value = "政治面貌", index = 3)
+    private String politicalOutlook;
+
+    @ExcelProperty(value = "是否租住", index = 4)
+    private String isRent;
+
+    @ExcelProperty(value = "街/路/巷", index = 5)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 6)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 7)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 8)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 9)
+    private String houseNo;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 10)
+    private String houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 11)
+    private String housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 12)
+    private String controlStatus;
+
+    @ExcelProperty(value = "联系方式", index = 13)
+    private String phone;
+
+    @ExcelProperty(value = "籍贯", index = 14)
+    private String nativePlace;
+
+    @ExcelProperty(value = "文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)", index = 15)
+    private String cultureLevel;
+
+    @ExcelProperty(value = "婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)", index = 16)
+    private String marriage;
+
+    @ExcelProperty(value = "健康状况", index = 17)
+    private String healthy;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 18)
+    private String outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 19)
+    private String censusRegister;
+
+    @ExcelProperty(value = "高龄老人登记(是/否)", index = 20)
+    private String isRegister;
+
+    @ExcelProperty(value = "健在(是/否)", index = 21)
+    private String isAlive;
+
+    @ExcelProperty(value = "*高龄津贴开始领取时间(年-月-日)", index = 22)
+    private String receiveAllowanceBegin;
+
+    @ExcelProperty(value = "*现居住地址", index = 23)
+    private String nowAddress;
+
+    @ExcelProperty(value = "备注", index = 24)
+    private String remark;
+
+    @ExcelProperty(value = "错误信息", index = 25)
+    private String mistake;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationPensionExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationPensionExcelVO.java
new file mode 100644
index 0000000..390ab5f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationPensionExcelVO.java
@@ -0,0 +1,132 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.google.common.collect.Lists;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * title: ComMngPopulationPensionExcelVO  批量导入养老金人员
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 批量导入养老金人员
+ *
+ * @author txb
+ * @date 2021/9/01 13:12
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationPensionExcelVO implements Serializable {
+
+    @ExcelProperty(value = "姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 1)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "民族", index = 2)
+    private String nation;
+
+    @ExcelProperty(value = "政治面貌", index = 3)
+    private Integer politicalOutlook;
+
+    @ExcelProperty(value = "是否租住", index = 4)
+    private Integer isRent;
+
+    @ExcelProperty(value = "街/路/巷", index = 5)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 6)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 7)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 8)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 9)
+    private String houseNo;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 10)
+    private Integer houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 11)
+    private Integer housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 12)
+    private Integer controlStatus;
+
+    @ExcelProperty(value = "联系方式", index = 13)
+    private String phone;
+
+    @ExcelProperty(value = "籍贯", index = 14)
+    private String nativePlace;
+
+    @ExcelProperty(value = "文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)", index = 15)
+    private Integer cultureLevel;
+
+    @ExcelProperty(value = "婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)", index = 16)
+    private Integer marriage;
+
+    @ExcelProperty(value = "健康状况", index = 17)
+    private String healthy;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 18)
+    private Integer outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 19)
+    private String censusRegister;
+
+    @ExcelProperty(value = "养老登记(是/否)", index = 20)
+    private Integer isRegister;
+
+    @ExcelProperty(value = "健在(是/否)", index = 21)
+    private Integer isAlive;
+
+    @ExcelProperty(value = "*养老金开始领取时间(年-月-日)", index = 22)
+    private Date receiveAllowanceBegin;
+
+    @ExcelProperty(value = "*现居住地址", index = 23)
+    private String nowAddress;
+
+    @ExcelProperty(value = "备注", index = 24)
+    private String remark;
+
+    /**
+     * 去重字段,使用(姓名+身份证号+街路巷+小区号+楼牌号+单元号+户室)组合字段进行MD5加密实现去重
+     */
+    private String distinctPass;
+
+    /**
+     * 年龄
+     */
+    private Integer age;
+
+    /**
+     * 性别(1.男 2.女)
+     */
+    private Integer sex;
+
+    /**
+     * 出生年月日
+     */
+    private String birthday;
+
+    /**
+     * 扩展字段用逗号隔开
+     */
+    private List<String> userTagStr = Lists.newArrayList();
+
+    private Long houseId;
+
+    /**
+     * 地址
+     */
+    private String address;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationPensionMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationPensionMistakeExcelVO.java
new file mode 100644
index 0000000..734c7fe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationPensionMistakeExcelVO.java
@@ -0,0 +1,99 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * title: ComMngPopulationPensionMistakeExcelVO  批量导入养老金人员
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 批量导入养老金人员
+ *
+ * @author txb
+ * @String 2021/9/01 13:12
+ */
+@Data
+public class ComMngPopulationPensionMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 1)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "民族", index = 2)
+    private String nation;
+
+    @ExcelProperty(value = "政治面貌", index = 3)
+    private String politicalOutlook;
+
+    @ExcelProperty(value = "是否租住", index = 4)
+    private String isRent;
+
+    @ExcelProperty(value = "街/路/巷", index = 5)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 6)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 7)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 8)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 9)
+    private String houseNo;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 10)
+    private String houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 11)
+    private String housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 12)
+    private String controlStatus;
+
+    @ExcelProperty(value = "联系方式", index = 13)
+    private String phone;
+
+    @ExcelProperty(value = "籍贯", index = 14)
+    private String nativePlace;
+
+    @ExcelProperty(value = "文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)", index = 15)
+    private String cultureLevel;
+
+    @ExcelProperty(value = "婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)", index = 16)
+    private String marriage;
+
+    @ExcelProperty(value = "健康状况", index = 17)
+    private String healthy;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 18)
+    private String outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 19)
+    private String censusRegister;
+
+    @ExcelProperty(value = "高龄老人登记(是/否)", index = 20)
+    private String isRegister;
+
+    @ExcelProperty(value = "健在(是/否)", index = 21)
+    private String isAlive;
+
+    @ExcelProperty(value = "*高龄津贴开始领取时间(年-月-日)", index = 22)
+    private String receiveAllowanceBegin;
+
+    @ExcelProperty(value = "*现居住地址", index = 23)
+    private String nowAddress;
+
+    @ExcelProperty(value = "备注", index = 24)
+    private String remark;
+
+    @ExcelProperty(value = "错误信息", index = 25)
+    private String mistake;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVO.java
index ffcd7e4..48daa8c 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVO.java
@@ -222,6 +222,12 @@
     @ApiModelProperty("低保户信息")
     private List<ComLowSecurityPopulationVO> comLowSecurityPopulationVOs;
 
+    @ApiModelProperty("高龄老人信息")
+    private List<ComElderAuthElderliesVO> comElderAuthElderliesVOList;
+
+    @ApiModelProperty("养老人员信息")
+    private List<ComPensionAuthPensionerVO> comPensionAuthPensionerVOList;
+
     public interface sex {
         int nan = 1;
         int nv = 2;
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthPensionerVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthPensionerVO.java
new file mode 100644
index 0000000..af39b16
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthPensionerVO.java
@@ -0,0 +1,80 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @title: ComPensionAuthPensionerVO 养老金人员表实体类
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老金人员表实体类
+ * @author: hans
+ * @date: 2021/09/01 16:30
+ */
+@Data
+@ApiModel("养老认证记录")
+public class ComPensionAuthPensionerVO {
+
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "人口id")
+    private Long populationId;
+
+    @ApiModelProperty(value = "街道id")
+    private Long streetId;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    @ApiModelProperty(value = "性别")
+    private Integer sex;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "出生日期")
+    private String birthday;
+
+    @ApiModelProperty(value = "人员类别(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上)")
+    private Integer personnelCategory;
+
+    @ApiModelProperty(value = "是否养老登记(1.是  0.否)")
+    private Integer isRegister;
+
+    @ApiModelProperty(value = "是否健在(1.是  0.否)")
+    private Integer isAlive;
+
+    @ApiModelProperty(value = "居住地址")
+    private String address;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "养老金开始领取日期")
+    private Date receiveAllowanceBegin;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    @ApiModelProperty(value = "创建用户")
+    private Long createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "修改用户")
+    private Long updateBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordExcleVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordExcleVO.java
new file mode 100644
index 0000000..b91890d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordExcleVO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: ComPensionAuthRecordExcleVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老认证记录
+ * @author: txb
+ * @date: 2021/09/07 16:16
+ */
+@Data
+@ApiModel("养老认证记录")
+@EncryptDecryptClass
+public class ComPensionAuthRecordExcleVO {
+
+    @ExcelProperty(value = "提交用户", index = 0)
+    private String submitUserName;
+
+    @ExcelProperty(value = "联系电话", index = 1)
+    private String phone;
+
+    @ExcelProperty(value = "认证姓名", index = 2)
+    private String name;
+
+    @ExcelProperty(value = "认证身份证号", index = 3)
+    @EncryptDecryptField
+    private String idCard;
+
+    @ExcelProperty(value = "现居住地址", index = 4)
+    private String address;
+
+    @ExcelProperty(value = "健在", index = 5)
+    private String isAlive;
+
+    @ExcelProperty(value = "认证期数", index = 6)
+    private String authPeriod;
+
+    @ExcelProperty(value = "认证时间", index = 7)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date authDate;
+
+    @ExcelProperty(value = "认证方式", index = 8)
+    private String authMethod;
+
+    @ExcelProperty(value = "标记", index = 9)
+    private String mark;
+
+    @ExcelProperty(value = "审核状态", index = 10)
+    private String approvalStatus;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordImportExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordImportExcelVO.java
new file mode 100644
index 0000000..30f520e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordImportExcelVO.java
@@ -0,0 +1,63 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @title: ComPensionAuthRecordImportExcelVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老线下认证导入
+ * @author: txb
+ * @date: 2021/09/08 09:16
+ */
+@Data
+@EncryptDecryptClass
+public class ComPensionAuthRecordImportExcelVO implements Serializable {
+
+    @ExcelProperty(value = "认证姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "认证身份证号码", index = 1)
+    @EncryptDecryptField
+    private String idCard;
+
+    @ExcelProperty(value = "联系电话", index = 2)
+    private String phone;
+
+    @ExcelProperty(value = "现居住地址", index = 3)
+    private String nowAddress;
+
+    @ExcelProperty(value = "认证时间", index = 4)
+    private Date authDate;
+
+    @ExcelProperty(value = "认证期数", index = 5)
+    private String authPeriod;
+
+    @ExcelProperty(value = "标记", index = 6)
+    private String mark;
+
+    /**
+     * 年龄
+     */
+    private Integer age;
+
+    /**
+     * 性别(1.男 2.女)
+     */
+    private Integer sex;
+
+    /**
+     * 出生年月日
+     */
+    private String birthday;
+
+    /**
+     * 地址
+     */
+    private String address;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordImportMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordImportMistakeExcelVO.java
new file mode 100644
index 0000000..b7562a9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordImportMistakeExcelVO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @title: ComPensionAuthRecordImportMistakeExcelVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老线下认证导入错误记录
+ * @author: txb
+ * @date: 2021/09/08 09:16
+ */
+@Data
+@EncryptDecryptClass
+public class ComPensionAuthRecordImportMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "认证姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "认证身份证号码", index = 1)
+    @EncryptDecryptField
+    private String idCard;
+
+    @ExcelProperty(value = "联系电话", index = 2)
+    private String phone;
+
+    @ExcelProperty(value = "现居住地址", index = 3)
+    private String nowAddress;
+
+    @ExcelProperty(value = "认证时间", index = 4)
+    private String authDate;
+
+    @ExcelProperty(value = "健在(是/否)", index = 5)
+    private String isAlive;
+
+    @ExcelProperty(value = "错误信息", index = 6)
+    private String mistake;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordStatisticExcleVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordStatisticExcleVO.java
new file mode 100644
index 0000000..0dd6fe1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordStatisticExcleVO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: ComPensionAuthRecordStatisticExcleVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老认证记录统计
+ * @author: txb
+ * @date: 2021/09/08 16:16
+ */
+@Data
+@ApiModel("养老认证记录统计")
+@EncryptDecryptClass
+public class ComPensionAuthRecordStatisticExcleVO {
+
+    @ExcelProperty(value = "联系电话", index = 0)
+    private String phone;
+
+    @ExcelProperty(value = "认证姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份证号", index = 2)
+    @EncryptDecryptField
+    private String idCard;
+
+    @ExcelProperty(value = "现居住地址", index = 3)
+    private String address;
+
+    @ExcelProperty(value = "健在", index = 4)
+    private String isAlive;
+
+    @ExcelProperty(value = "认证期数", index = 5)
+    private String authPeriod;
+
+    @ExcelProperty(value = "认证时间", index = 6)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date authDate;
+
+    @ExcelProperty(value = "认证方式", index = 7)
+    private String authMethod;
+
+    @ExcelProperty(value = "标记", index = 8)
+    private String mark;
+
+    @ExcelProperty(value = "认证状态", index = 9)
+    private String authStatus;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordVO.java
new file mode 100644
index 0000000..5eee904
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordVO.java
@@ -0,0 +1,102 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ComPensionAuthRecordVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老认证记录
+ * @author: hans
+ * @date: 2021/09/01 16:59
+ */
+@Data
+@ApiModel("养老认证记录")
+@EncryptDecryptClass
+public class ComPensionAuthRecordVO {
+
+    @ApiModelProperty(value = "自增id")
+    private Long id;
+
+    @ApiModelProperty(value = "养老金用户id")
+    private Long pensionerId;
+
+    @ApiModelProperty(value = "认证方式(1.视频认证 2.人脸认证)")
+    private Integer authMethod;
+
+    @ApiModelProperty(value = "认证期数")
+    private String authPeriod;
+
+    @ApiModelProperty(value = "提交用户")
+    private Long submitUserId;
+
+    @ApiModelProperty(value = "提交用户姓名")
+    private String submitUserName;
+
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "身份证号")
+    @EncryptDecryptField
+    private String idCard;
+
+    @ApiModelProperty(value = "性别(1.男 2.女 3.其他)")
+    private String sex;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "出生日期")
+    private String birthday;
+
+    @ApiModelProperty(value = "人员类别(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上)")
+    private Integer personnelCategory;
+
+    @ApiModelProperty(value = "是否高龄老人登记(1.是  0.否)")
+    private Integer isRegister;
+
+    @ApiModelProperty(value = "是否健在(1.是  0.否)")
+    private Integer isAlive;
+
+    @ApiModelProperty(value = "居住地址")
+    private String address;
+
+    @ApiModelProperty(value = "认证视频url")
+    private String authVideo;
+
+    @ApiModelProperty(value = "审核人员id")
+    private String approverId;
+
+    @ApiModelProperty(value = "审核状态(1.待审核 2.驳回 3.通过)")
+    private Integer approvalStatus;
+
+    @ApiModelProperty(value = "审核时间")
+    private Date approvalDate;
+
+    @ApiModelProperty(value = "标记")
+    private String mark;
+
+    @ApiModelProperty(value = "驳回原因")
+    private String rejectReason;
+
+    @ApiModelProperty(value = "认证状态")
+    private Integer authStatus;
+
+    @ApiModelProperty(value = "认证时间")
+    private Date authDate;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportVO.java
index 5c5ceac..6a6c500 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportVO.java
@@ -56,6 +56,18 @@
     private String patrolType;
 
     /**
+     * 巡查领导id
+     */
+    @ApiModelProperty("巡查领导id")
+    private String patrolLeader;
+
+    /**
+     * 巡查领导名字
+     */
+    @ApiModelProperty("巡查领导名字")
+    private String patrolLeaderName;
+
+    /**
      * 巡查人员,多个以逗号隔开
      */
     @ApiModelProperty("巡查人员id,多个以逗号隔开")
@@ -104,6 +116,12 @@
     private String remark;
 
     /**
+     * 是否存在隐患(1是 、0否)
+     */
+    @ApiModelProperty("是否存在隐患(1是 、0否)")
+    private Integer isHiddenDanger;
+
+    /**
      * 隐患名称
      */
     @ApiModelProperty("隐患名称")
@@ -150,6 +168,12 @@
      */
     @ApiModelProperty("风险等级(1.红色预警 2.橙色预警 3.黄色预警 4.蓝色预警)")
     private String dangerLevel;
+
+    /**
+     * 是否立即整改(1是 、0否)
+     */
+    @ApiModelProperty("是否立即整改(1是 、0否)")
+    private Integer isRectifyImmediately;
 
     /**
      * 采取措施
@@ -256,6 +280,37 @@
     private String patrolName;
 
     /**
+     * 接班领导id
+     */
+    @ApiModelProperty("接班领导id")
+    private String successionLeader;
+
+    /**
+     * 接班领导名字
+     */
+    @ApiModelProperty("接班领导名字")
+    private String successionLeaderName;
+
+    /**
+     * 接班人员id
+     */
+    @ApiModelProperty("接班人员id")
+    private String successionPerson;
+
+    /**
+     * 接班人员名字
+     */
+    @ApiModelProperty("接班人员名字")
+    private String successionPersonName;
+
+    /**
+     * 接班时间
+     */
+    @ApiModelProperty("接班时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date successionTime;
+
+    /**
      * 巡查类型
      */
     public interface patrolType {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwSafetyWorkRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwSafetyWorkRecordVO.java
index 1646a23..607c13a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwSafetyWorkRecordVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwSafetyWorkRecordVO.java
@@ -58,6 +58,12 @@
     private String patrolType;
 
     /**
+     * 巡查领导id
+     */
+    @ApiModelProperty("巡查领导id")
+    private String patrolLeader;
+
+    /**
      * 巡查人员
      */
     @ApiModelProperty("巡查人员")
@@ -123,6 +129,37 @@
     private String personName;
 
     /**
+     * 接班领导id
+     */
+    @ApiModelProperty("接班领导id")
+    private String successionLeader;
+
+    /**
+     * 接班领导名字
+     */
+    @ApiModelProperty("接班领导名字")
+    private String successionLeaderName;
+
+    /**
+     * 接班人员id
+     */
+    @ApiModelProperty("接班人员id")
+    private String successionPerson;
+
+    /**
+     * 接班人员名字
+     */
+    @ApiModelProperty("接班人员名字")
+    private String successionPersonName;
+
+    /**
+     * 接班时间
+     */
+    @ApiModelProperty("接班时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date successionTime;
+
+    /**
      * 巡查类型
      */
     public interface patrolType {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IdentityAuthRecordDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IdentityAuthRecordDetailVO.java
new file mode 100644
index 0000000..bc75db9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IdentityAuthRecordDetailVO.java
@@ -0,0 +1,60 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import com.panzhihua.common.model.helper.sensitive.Sensitive;
+import com.panzhihua.common.model.helper.sensitive.SensitiveStrategy;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: IdentityAuthRecordDetailVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 身份认证记录详情
+ * @author: hans
+ * @date: 2021/09/03 15:32
+ */
+@Data
+@ApiModel("身份认证记录详情")
+@EncryptDecryptClass
+public class IdentityAuthRecordDetailVO {
+
+    @ApiModelProperty(value = "自增id")
+    private Long id;
+
+    @ApiModelProperty(value = "姓名")
+    @Sensitive(strategy = SensitiveStrategy.USERNAME)
+    private String name;
+
+    @ApiModelProperty(value = "身份证号")
+    @Sensitive(strategy = SensitiveStrategy.ID_CARD)
+    @EncryptDecryptField
+    private String idCard;
+
+    @ApiModelProperty(value = "现居住地址")
+    private String address;
+
+    @ApiModelProperty(value = "认证期数")
+    private String authPeriod;
+
+    @ApiModelProperty(value = "管辖社区")
+    private String communityName;
+
+    @ApiModelProperty(value = "认证时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date authDate;
+
+    @ApiModelProperty(value = "认证状态(1.待审核 2.认证失败 3.已认证)")
+    private Integer approvalStatus;
+
+    @ApiModelProperty(value = "认证视频url")
+    private String authVideo;
+
+    @ApiModelProperty(value = "驳回原因")
+    private String rejectReason;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoStatisticsVO.java
index b66e80f..fab6955 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoStatisticsVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoStatisticsVO.java
@@ -10,13 +10,13 @@
 @ApiModel("随手拍列表统计返回参数")
 public class ComActEasyPhotoStatisticsVO {
 
-    @ApiModelProperty("待审核数量")
+    @ApiModelProperty("待处理数量")
     private Integer examineNum = 0;
 
-    @ApiModelProperty("待验证数量")
+    @ApiModelProperty("进行中数量")
     private Integer verificationNum = 0;
 
-    @ApiModelProperty("已驳回数量")
+    @ApiModelProperty("已公示数量")
     private Integer rejectNum = 0;
 
     @ApiModelProperty("已完成数量")
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireStatisticsSummaryExcelAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireStatisticsSummaryExcelAdminVO.java
index 253bc9f..f08c764 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireStatisticsSummaryExcelAdminVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireStatisticsSummaryExcelAdminVO.java
@@ -18,9 +18,9 @@
     private String option;
     @ExcelProperty(value = "参与人数百分比", index = 2)
     private BigDecimal tag;
-    @ExcelProperty(value = "选择该选项人数", index = 3)
+    @ExcelProperty(value = "该选项选择总次数", index = 3)
     private Integer count;
-    @ExcelProperty(value = "该题目参与人数", index = 4)
+    @ExcelProperty(value = "该题目选择总次数", index = 4)
     private Integer allCount;
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireVO.java
index 37de966..7bd915a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireVO.java
@@ -33,9 +33,9 @@
     @ApiModelProperty("调研结束时间")
     private String endTime;
     @ApiModelProperty("是否强制调研(1.是 2.否)")
-    private String isForce;
+    private Integer isForce;
     @ApiModelProperty("是否封面(1.是 2.否)")
-    private String isCover;
+    private Integer isCover;
     @ApiModelProperty("问卷调查备注(应用名称)")
     private String remark;
     @ApiModelProperty("组件json数据")
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaiteSubSelectionVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaiteSubSelectionVO.java
index efeee12..2e2577b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaiteSubSelectionVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaiteSubSelectionVO.java
@@ -26,4 +26,7 @@
 
     @ApiModelProperty(value = "选项key")
     private String key;
+
+    @ApiModelProperty(value = "图片选择组件url地址")
+    private String url;
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaiteSubVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaiteSubVO.java
index ebf7044..a7b37fc 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaiteSubVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaiteSubVO.java
@@ -17,7 +17,7 @@
     private int sort;
     @ApiModelProperty(value = "题目内容")
     private String label;
-    @ApiModelProperty(value = "类型 0 单选  1 多选 2 输入框 2姓名输入框 3 手机号 4 身份证 5 文字描述 6 日期选择", example = "0")
+    @ApiModelProperty(value = "类型 0 单选  1 多选 2 输入框  3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框 10图片选择", example = "0")
     private Integer type;
     @ApiModelProperty(value = "问卷题目选项")
     private List<QuestnaiteSubSelectionVO> options;
@@ -27,11 +27,19 @@
     private String values;
 
     /**
-     * 0单选1多选2问答题
+     * 类型 0 单选  1 多选 2 输入框  3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框 10图片选择
      */
     public interface type {
         int danxuan = 0;
         int duoxuan = 1;
         int wenda = 2;
+        int phone = 3;
+        int card = 4;
+        int describe = 5;
+        int date = 6;
+        int time = 7;
+        int input = 8;
+        int name = 9;
+        int imgselect = 10;
     }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveAppletsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveAppletsVO.java
new file mode 100644
index 0000000..85ba52d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveAppletsVO.java
@@ -0,0 +1,143 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * @author lyq
+ * @create 2021-08-23 10:33:11
+ * @describe 预约登记信息
+ */
+
+@Data
+public class ComActReserveAppletsVO{
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 类型(1.预约 2.登记)
+     */
+    private Integer type;
+
+    /**
+     * 主题
+     */
+    private String title;
+
+    /**
+     * 浏览量
+     */
+    private Integer viewNum;
+
+    /**
+     * 总参加人数
+     */
+    private Integer joinAllCount;
+
+    /**
+     * 参加人数
+     */
+    private Integer joinCount;
+
+    /**
+     * 图标类型(1.预设1 2.预设2 3.预设3 4.预设4 5.用户自定义图片)
+     */
+    private Integer imgType;
+
+    /**
+     * 图标url(当img_type为5时,此字段的值为图标url地址)
+     */
+    private String imgUrl;
+
+    /**
+     * 状态(1.待发布 2.进行中 3.已停止)
+     */
+    private Integer status;
+
+    /**
+     * 发布时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date publishTime;
+
+    /**
+     * 是否可重复提交(1.是 2.否)
+     */
+    private Integer isRepeat;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 组件json数据
+     */
+    private String jsonObject;
+
+    /**
+     * 是否是首页顶部(1.是 2.否)
+     */
+    private Integer adverPositionTop;
+
+    /**
+     * 是否是首页应用(1.是 2.否)
+     */
+    private Integer adverPositionApplication;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    /**
+     * 修改人
+     */
+    private Long updateBy;
+
+    /**
+     * 结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+
+    /**
+     * 是否已删除(1.是 2.否)
+     */
+    private Integer isDel;
+
+    /**
+     * 操作记录
+     */
+    private List<ComOperationListVO> operationList;
+
+    /**
+     * 预约登记id
+     */
+    private Long reserveId;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveDetailAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveDetailAdminVO.java
index 8e1f7f5..87f1ae5 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveDetailAdminVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveDetailAdminVO.java
@@ -61,4 +61,7 @@
 
     @ApiModelProperty("是否可重复提交(1.是 2.否)")
     private Integer isRepeat;
+
+    @ApiModelProperty("图标类型")
+    private Integer imgType;
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterDetailedAnswerVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterDetailedAnswerVO.java
index 30b970a..a343327 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterDetailedAnswerVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterDetailedAnswerVO.java
@@ -20,4 +20,7 @@
 
     @ApiModelProperty("回答内容")
     private String answerContent;
+
+    @ApiModelProperty("类型 0 单选  1 多选 2 输入框  3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框")
+    private Integer type;
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveSubListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveSubListVO.java
index 2cef446..eadc4c3 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveSubListVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveSubListVO.java
@@ -14,6 +14,9 @@
     @ApiModelProperty("题目内容")
     private String content;
 
+    @ApiModelProperty("类型 0 单选  1 多选 2 输入框  3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框")
+    private Integer type;
+
     public ComActReserveSubListVO() {
     }
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthHistoryVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthHistoryVO.java
new file mode 100644
index 0000000..ed3b6e3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthHistoryVO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.vos.elders;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel("高龄老人用户信息")
+@EncryptDecryptClass
+public class ComEldersAuthHistoryVO {
+
+    @ApiModelProperty(value = "认证记录id")
+    private Long id;
+
+    @ApiModelProperty(value = "认证姓名")
+    private String name;
+
+    @ApiModelProperty(value = "认证用户老人关系表id")
+    private Long userId;
+
+    @ApiModelProperty(value = "认证用户身份证")
+    @EncryptDecryptField
+    private String idCard;
+
+    @ApiModelProperty(value = "认证用户生日")
+    private String birthday;
+
+    @ApiModelProperty(value = "认证用户户籍地")
+    private String domicile;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "认证时间")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthStatisticHeaderVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthStatisticHeaderVO.java
new file mode 100644
index 0000000..01559da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthStatisticHeaderVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.elders;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * @deprecated 高龄老人认证统计信息
+ */
+@Data
+@ApiModel("高龄老人认证统计信息")
+public class ComEldersAuthStatisticHeaderVO {
+
+    @ApiModelProperty(value = "本期总人数")
+    private Integer allCount;
+
+    @ApiModelProperty(value = "本期认证成功总人数")
+    private Integer yesCount;
+
+    @ApiModelProperty(value = "本期认证失败总人数")
+    private Integer noCount;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthStatisticVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthStatisticVO.java
new file mode 100644
index 0000000..52bddd7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthStatisticVO.java
@@ -0,0 +1,93 @@
+package com.panzhihua.common.model.vos.elders;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lyq
+ * @deprecated 高龄老人认证统计信息
+ */
+@Data
+@ApiModel("高龄老人认证统计信息")
+@EncryptDecryptClass
+public class ComEldersAuthStatisticVO {
+
+    @ApiModelProperty(value = "认证记录id")
+    private Long id;
+
+    @ApiModelProperty(value = "认证姓名")
+    private String name;
+
+    @ApiModelProperty(value = "认证用户手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "认证用户身份证")
+    @EncryptDecryptField
+    private String idCard;
+
+    @ApiModelProperty(value = "性别(1.男 2.女 3.其他)")
+    private Integer sex;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "人员类别(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上)")
+    private Integer personnelCategory;
+
+    @ApiModelProperty(value = "是否健在(1.是  0.否)")
+    private Integer isAlive;
+
+    @ApiModelProperty(value = "认证期数")
+    private String authPeriod;
+
+    @ApiModelProperty(value = "认证时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date authDate;
+
+    @ApiModelProperty(value = "认证方式(1.视频认证 2.人脸认证 3.线下认证)")
+    private Integer authMethod;
+
+    @ApiModelProperty(value = "标记")
+    private String mark;
+
+    @ApiModelProperty(value = "是否已认证(1.已认证 2.未认证)")
+    private Integer isAuth;
+
+    @ApiModelProperty(value = "提交用户id")
+    private Long submitUserId;
+
+    @ApiModelProperty(value = "提交用户名称")
+    private String submitUserName;
+
+    @ApiModelProperty(value = "审核人名称")
+    private String approvalName;
+
+    @ApiModelProperty(value = "现居住地址")
+    private String address;
+
+    @ApiModelProperty(value = "认证视频地址")
+    private String authVideo;
+
+    @ApiModelProperty(value = "审核状态(1.待审核 2.驳回 3.通过)")
+    private Integer approvalStatus;
+
+    @ApiModelProperty(value = "审核人id")
+    private Long approverId;
+
+    @ApiModelProperty(value = "审核时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date approvalDate;
+
+    @ApiModelProperty(value = "认证用户生日")
+    private String birthday;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComPensionAuthStatisticVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComPensionAuthStatisticVO.java
new file mode 100644
index 0000000..e6f8c47
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComPensionAuthStatisticVO.java
@@ -0,0 +1,90 @@
+package com.panzhihua.common.model.vos.elders;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lyq
+ * @deprecated 养老认证统计信息
+ */
+@Data
+@ApiModel("养老认证统计信息")
+@EncryptDecryptClass
+public class ComPensionAuthStatisticVO {
+
+    @ApiModelProperty(value = "认证记录id")
+    private Long id;
+
+    @ApiModelProperty(value = "认证姓名")
+    private String name;
+
+    @ApiModelProperty(value = "认证用户手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "认证用户身份证")
+    @EncryptDecryptField
+    private String idCard;
+
+    @ApiModelProperty(value = "性别(1.男 2.女 3.其他)")
+    private Integer sex;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "是否健在(1.是  0.否)")
+    private Integer isAlive;
+
+    @ApiModelProperty(value = "认证期数")
+    private String authPeriod;
+
+    @ApiModelProperty(value = "认证时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date authDate;
+
+    @ApiModelProperty(value = "认证方式(1.视频认证 2.人脸认证 3.线下认证)")
+    private Integer authMethod;
+
+    @ApiModelProperty(value = "标记")
+    private String mark;
+
+    @ApiModelProperty(value = "是否已认证(1.已认证 2.未认证)")
+    private Integer isAuth;
+
+    @ApiModelProperty(value = "提交用户id")
+    private Long submitUserId;
+
+    @ApiModelProperty(value = "提交用户名称")
+    private String submitUserName;
+
+    @ApiModelProperty(value = "审核人名称")
+    private String approvalName;
+
+    @ApiModelProperty(value = "现居住地址")
+    private String address;
+
+    @ApiModelProperty(value = "认证视频地址")
+    private String authVideo;
+
+    @ApiModelProperty(value = "审核状态(1.待审核 2.驳回 3.通过)")
+    private Integer approvalStatus;
+
+    @ApiModelProperty(value = "审核人id")
+    private Long approverId;
+
+    @ApiModelProperty(value = "审核时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date approvalDate;
+
+    @ApiModelProperty(value = "认证用户生日")
+    private String birthday;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleAppVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleAppVO.java
index dc6625e..6c7e0cb 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleAppVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleAppVO.java
@@ -107,4 +107,7 @@
 
     @ApiModelProperty("话题id")
     private String topicId;
+
+    @ApiModelProperty("热度")
+    private Long hotNum;
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleDetailAppVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleDetailAppVO.java
index a47e446..f1f8f92 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleDetailAppVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleDetailAppVO.java
@@ -3,6 +3,7 @@
 import java.util.Date;
 import java.util.List;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -47,9 +48,11 @@
     private Integer isBoutique;
 
     @ApiModelProperty("发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createAt;
 
     @ApiModelProperty("最后回复时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date replyAt;
 
     @ApiModelProperty("邻里圈评论列表")
@@ -76,4 +79,7 @@
     @ApiModelProperty("邻里圈话题名字")
     private String topicName;
 
+    @ApiModelProperty("驳回原因")
+    private String refuseReason;
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleTopicAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleTopicAdminVO.java
index 85d7896..92d7af2 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleTopicAdminVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleTopicAdminVO.java
@@ -35,4 +35,6 @@
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createAt;
 
+    @ApiModelProperty("随手拍条数")
+    private Integer count;
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleTopicAppVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleTopicAppVO.java
index ab8cacd..683a1e5 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleTopicAppVO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleTopicAppVO.java
@@ -18,4 +18,10 @@
     @ApiModelProperty("话题名字")
     private String name;
 
+    @ApiModelProperty("热度")
+    private Long hotNum;
+
+    @ApiModelProperty("邻里圈数量")
+    private Integer count;
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/CacheConfig.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/CacheConfig.java
new file mode 100644
index 0000000..0b8f8b3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/CacheConfig.java
@@ -0,0 +1,73 @@
+package com.panzhihua.common.redis;
+
+import java.time.Duration;
+
+import org.springframework.cache.CacheManager;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.cache.RedisCacheConfiguration;
+import org.springframework.data.redis.cache.RedisCacheManager;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.RedisSerializationContext;
+import org.springframework.data.redis.serializer.RedisSerializer;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+/**
+ * program 攀枝花智慧社区项目 缓存配置类
+ *
+ * @author manailin Date 2021-08-27 15:30
+ **/
+@Configuration
+public class CacheConfig {
+
+    private Duration timeToLive = Duration.ofHours(1);
+
+    @Bean
+    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
+        RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
+        redisTemplate.setConnectionFactory(redisConnectionFactory);
+
+        // 使用Jackson2JsonRedisSerialize 替换默认序列化
+        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
+
+        ObjectMapper objectMapper = new ObjectMapper();
+        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+        objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
+
+        jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
+
+        // 设置value的序列化规则和 key的序列化规则
+        redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
+        redisTemplate.setKeySerializer(new StringRedisSerializer());
+        redisTemplate.afterPropertiesSet();
+        return redisTemplate;
+    }
+
+    @Bean
+    public CacheManager cacheManager(RedisConnectionFactory factory) {
+        RedisSerializer<String> redisSerializer = new StringRedisSerializer();
+        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
+
+        // 解决查询缓存转换异常的问题
+        ObjectMapper om = new ObjectMapper();
+        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
+        jackson2JsonRedisSerializer.setObjectMapper(om);
+
+        // 配置序列化(解决乱码的问题)
+        RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig().entryTtl(timeToLive)
+            .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer))
+            .serializeValuesWith(
+                RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer))
+            .disableCachingNullValues();
+        RedisCacheManager cacheManager = RedisCacheManager.builder(factory).cacheDefaults(config).build();
+
+        return cacheManager;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/RedisUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/RedisUtils.java
new file mode 100644
index 0000000..c4d8932
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/RedisUtils.java
@@ -0,0 +1,247 @@
+package com.panzhihua.common.redis;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.*;
+import org.springframework.stereotype.Component;
+
+/**
+ * 攀枝花智慧社区项目
+ * <p>
+ * redis 操作工具类
+ * <p>
+ * Copyright: Copyright (C) 2021 XXX, Inc. All rights reserved.
+ * <p>
+ * Company: 成都呐喊信息技术有限公司
+ * <p>
+ *
+ * @author manailin
+ * @since 2021/8/27 8:58
+ */
+@Component
+public class RedisUtils {
+
+    @Autowired
+    private RedisTemplate redisTemplate;
+
+    /**
+     * 写入缓存
+     *
+     * @param key
+     * @param value
+     * @return
+     */
+    public boolean set(final String key, Object value) {
+        boolean result = false;
+        try {
+            ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
+            operations.set(key, value);
+            result = true;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+
+    /**
+     * 写入缓存设置时效时间
+     *
+     * @param key
+     * @param value
+     * @return
+     */
+    public boolean set(final String key, Object value, Long expireTime) {
+        boolean result = false;
+        try {
+            ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
+            operations.set(key, value);
+            redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);
+            result = true;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+
+    /**
+     * 批量删除对应的value
+     *
+     * @param keys
+     */
+    public void remove(final String... keys) {
+        for (String key : keys) {
+            remove(key);
+        }
+    }
+
+    /**
+     * 批量删除对应的value (带事务,业务代码中用到事务,则需用此方法)
+     *
+     * @param keys
+     */
+    public void removeTransactional(final String... keys) {
+        for (String key : keys) {
+            removeTransactional(key);
+        }
+    }
+
+    /**
+     * 批量删除key
+     *
+     * @param pattern
+     */
+    public void removePattern(final String pattern) {
+        Set<Serializable> keys = redisTemplate.keys(pattern);
+        if (keys.size() > 0) {
+            redisTemplate.delete(keys);
+        }
+    }
+
+    /**
+     * 删除对应的value
+     *
+     * @param key
+     */
+    public void remove(final String key) {
+        if (exists(key)) {
+            redisTemplate.delete(key);
+        }
+    }
+
+    /**
+     * 判断缓存中是否有对应的value
+     *
+     * @param key
+     * @return
+     */
+    public boolean exists(final String key) {
+        return redisTemplate.hasKey(key);
+    }
+
+    /**
+     * 读取缓存
+     *
+     * @param key
+     * @return
+     */
+    public Object get(final String key) {
+        ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
+        return operations.get(key);
+    }
+
+    /**
+     * 哈希 添加
+     *
+     * @param key
+     * @param hashKey
+     * @param value
+     */
+    public void hmSet(String key, Object hashKey, Object value) {
+        HashOperations<String, Object, Object> hash = redisTemplate.opsForHash();
+        hash.put(key, hashKey, value);
+    }
+
+    /**
+     * 哈希获取数据
+     *
+     * @param key
+     * @param hashKey
+     * @return
+     */
+    public Object hmGet(String key, Object hashKey) {
+        HashOperations<String, Object, Object> hash = redisTemplate.opsForHash();
+        return hash.get(key, hashKey);
+    }
+
+    /**
+     * 列表添加
+     *
+     * @param k
+     * @param v
+     */
+    public void lPush(String k, Object v) {
+        ListOperations<String, Object> list = redisTemplate.opsForList();
+        list.rightPush(k, v);
+    }
+
+    /**
+     * 列表获取
+     *
+     * @param k
+     * @param l
+     * @param l1
+     * @return
+     */
+    public List<Object> lRange(String k, long l, long l1) {
+        ListOperations<String, Object> list = redisTemplate.opsForList();
+        return list.range(k, l, l1);
+    }
+
+    /**
+     * 集合添加
+     *
+     * @param key
+     * @param value
+     */
+    public void add(String key, Object value) {
+        SetOperations<String, Object> set = redisTemplate.opsForSet();
+        set.add(key, value);
+    }
+
+    /**
+     * 集合获取
+     *
+     * @param key
+     * @return
+     */
+    public Set<Object> setMembers(String key) {
+        SetOperations<String, Object> set = redisTemplate.opsForSet();
+        return set.members(key);
+    }
+
+    /**
+     * 有序集合添加
+     *
+     * @param key
+     * @param value
+     * @param scoure
+     */
+    public void zAdd(String key, Object value, double scoure) {
+        ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();
+        zset.add(key, value, scoure);
+    }
+
+    /**
+     * 有序集合获取
+     *
+     * @param key
+     * @param scoure
+     * @param scoure1
+     * @return
+     */
+    public Set<Object> rangeByScore(String key, double scoure, double scoure1) {
+        ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();
+        return zset.rangeByScore(key, scoure, scoure1);
+    }
+
+    /**
+     * 加锁
+     *
+     * @param key
+     * @return
+     */
+    public boolean tryLock(String key) {
+        try {
+            long currTime = System.currentTimeMillis();
+            // 加锁成功
+            return redisTemplate.opsForValue().setIfAbsent(key, currTime);
+        } finally {
+            redisTemplate.expire(key, 5, TimeUnit.SECONDS);
+        }
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
index 1b7b0a1..9d7adc8 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -2,8 +2,16 @@
 
 import java.util.List;
 
+import com.panzhihua.common.model.dtos.community.GetIdentityEidTokenDTO;
 import com.panzhihua.common.model.dtos.community.*;
 import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussDetailDTO;
+import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussPublishResultDTO;
+import com.panzhihua.common.model.dtos.community.elder.ElderAuthStatisticHeaderDTO;
+import com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO;
+import com.panzhihua.common.model.dtos.community.elder.PagePensionAuthStatisticDTO;
+import com.panzhihua.common.model.dtos.community.elder.SignElderAuthStatisticDTO;
+import com.panzhihua.common.model.dtos.neighbor.*;
 import com.panzhihua.common.model.vos.community.*;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -19,6 +27,77 @@
 import com.panzhihua.common.model.dtos.PageDTO;
 import com.panzhihua.common.model.dtos.advertisement.ComOpsAdvDTO;
 import com.panzhihua.common.model.dtos.advertisement.PageComOpsAdvDTO;
+import com.panzhihua.common.model.dtos.community.AddComActDynTypeDTO;
+import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO;
+import com.panzhihua.common.model.dtos.community.CancelRecordDTO;
+import com.panzhihua.common.model.dtos.community.CascadeHouseDTO;
+import com.panzhihua.common.model.dtos.community.ComActDiscussCommentDTO;
+import com.panzhihua.common.model.dtos.community.ComActDiscussCommentUserDTO;
+import com.panzhihua.common.model.dtos.community.ComActDiscussDTO;
+import com.panzhihua.common.model.dtos.community.ComActDiscussOptionUserDTO;
+import com.panzhihua.common.model.dtos.community.ComActDiscussUserDTO;
+import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentDTO;
+import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentUserDTO;
+import com.panzhihua.common.model.dtos.community.ComCvtBusinessDTO;
+import com.panzhihua.common.model.dtos.community.ComCvtCategoryDTO;
+import com.panzhihua.common.model.dtos.community.ComCvtServeDTO;
+import com.panzhihua.common.model.dtos.community.ComExServicemanDTO;
+import com.panzhihua.common.model.dtos.community.ComMngCarAppletDTO;
+import com.panzhihua.common.model.dtos.community.ComMngCarSaveDTO;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationDTO;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationEditDTO;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseAdminDTO;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseEditAdminDTO;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationTagDTO;
+import com.panzhihua.common.model.dtos.community.ComMngRealCompanyBelongsDTO;
+import com.panzhihua.common.model.dtos.community.ComOpsHouseDTO;
+import com.panzhihua.common.model.dtos.community.ComSwDangerReportHandleDTO;
+import com.panzhihua.common.model.dtos.community.ComSwDangerReportRectifyDTO;
+import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordAddDTO;
+import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
+import com.panzhihua.common.model.dtos.community.ComSwRotaPageDTO;
+import com.panzhihua.common.model.dtos.community.ComSwRotaSaveDTO;
+import com.panzhihua.common.model.dtos.community.DisabledPersonsDTO;
+import com.panzhihua.common.model.dtos.community.EditComActDynTypeDTO;
+import com.panzhihua.common.model.dtos.community.EldersAuthAddByFamilyDTO;
+import com.panzhihua.common.model.dtos.community.EldersAuthAddDTO;
+import com.panzhihua.common.model.dtos.community.EldersAuthDeleteDTO;
+import com.panzhihua.common.model.dtos.community.EldersAuthEditDTO;
+import com.panzhihua.common.model.dtos.community.EldersAuthElderlyDTO;
+import com.panzhihua.common.model.dtos.community.EldersAuthFeedbackAddDTO;
+import com.panzhihua.common.model.dtos.community.EldersAuthTypeQueryDTO;
+import com.panzhihua.common.model.dtos.community.ExportComMngCarExcelDTO;
+import com.panzhihua.common.model.dtos.community.ExportRealAssetsExcelDTO;
+import com.panzhihua.common.model.dtos.community.ExportRealCompanyExcelDTO;
+import com.panzhihua.common.model.dtos.community.GrantRewardDTO;
+import com.panzhihua.common.model.dtos.community.KeyPersonInfoDTO;
+import com.panzhihua.common.model.dtos.community.OperationDetailDTO;
+import com.panzhihua.common.model.dtos.community.PageActWorkGuideDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDiscussCommentDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDiscussDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDynTypeDTO;
+import com.panzhihua.common.model.dtos.community.PageComActEasyPhotoCommentDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtBusinessAppletsDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtBusinessDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtCategoryDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtServeDTO;
+import com.panzhihua.common.model.dtos.community.PageComEldersRecordsDTO;
+import com.panzhihua.common.model.dtos.community.PageComMngCarDTO;
+import com.panzhihua.common.model.dtos.community.PageComMngRealAssetsDTO;
+import com.panzhihua.common.model.dtos.community.PageComMngRealCompanyDTO;
+import com.panzhihua.common.model.dtos.community.PageComMngVillageDTO;
+import com.panzhihua.common.model.dtos.community.PageComOpsHouseDTO;
+import com.panzhihua.common.model.dtos.community.PageComStreetDTO;
+import com.panzhihua.common.model.dtos.community.PageEldersAuthDTO;
+import com.panzhihua.common.model.dtos.community.PageEldersAuthElderlyDTO;
+import com.panzhihua.common.model.dtos.community.PageEldersAuthHistoryDTO;
+import com.panzhihua.common.model.dtos.community.PageEldersAuthRecordDTO;
+import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO;
+import com.panzhihua.common.model.dtos.community.PageQuestnaireAnswerDTO;
+import com.panzhihua.common.model.dtos.community.PageQuestnaireDTO;
+import com.panzhihua.common.model.dtos.community.PageQuestnaireSubDetailsDTO;
+import com.panzhihua.common.model.dtos.community.PageUserReserveDTO;
 import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenEventDTO;
 import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenEventDetailDTO;
 import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticAgeGenderDTO;
@@ -40,7 +119,18 @@
 import com.panzhihua.common.model.dtos.community.integral.admin.PageComActIntegralRuleDTO;
 import com.panzhihua.common.model.dtos.community.integral.admin.PageComActIntegralTradeDTO;
 import com.panzhihua.common.model.dtos.community.questnaire.StatisticsSummaryDTO;
-import com.panzhihua.common.model.dtos.community.reserve.*;
+import com.panzhihua.common.model.dtos.community.reserve.AddReserveAdminDTO;
+import com.panzhihua.common.model.dtos.community.reserve.CancelReserveRecordDTO;
+import com.panzhihua.common.model.dtos.community.reserve.ComActReserveMakeStatisticsDTO;
+import com.panzhihua.common.model.dtos.community.reserve.ComActReserveRegisterStatisticsDTO;
+import com.panzhihua.common.model.dtos.community.reserve.EditComActReserveInfoDTO;
+import com.panzhihua.common.model.dtos.community.reserve.EditComActReserveStatusDTO;
+import com.panzhihua.common.model.dtos.community.reserve.EditReserveAdminDTO;
+import com.panzhihua.common.model.dtos.community.reserve.MakeHandleAdminDTO;
+import com.panzhihua.common.model.dtos.community.reserve.PageReserveAdminDTO;
+import com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeAdminDTO;
+import com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeHandleAdminDTO;
+import com.panzhihua.common.model.dtos.community.reserve.PageReserveRegisterDetailedAdminDTO;
 import com.panzhihua.common.model.dtos.community.switchs.SearchCommunityDTO;
 import com.panzhihua.common.model.dtos.community.wallet.ComActWalletDetailDTO;
 import com.panzhihua.common.model.dtos.community.wallet.ComActWalletSettlementAdminDTO;
@@ -63,20 +153,6 @@
 import com.panzhihua.common.model.dtos.grid.admin.ComMngVillageListExportAdminDTO;
 import com.panzhihua.common.model.dtos.grid.admin.PageComMngVillagePopulationDTO;
 import com.panzhihua.common.model.dtos.grid.admin.PageComMngVillagePopulationHouseDTO;
-import com.panzhihua.common.model.dtos.neighbor.AddComActNeighborCircleAppDTO;
-import com.panzhihua.common.model.dtos.neighbor.AddNeighborCircleTopicAdminDTO;
-import com.panzhihua.common.model.dtos.neighbor.ComActNeighborAddBrowseAppDTO;
-import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleAdminDTO;
-import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleAppDTO;
-import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleDetailAppDTO;
-import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleTopicAdminDTO;
-import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCommentAppDTO;
-import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCommentReplyAppDTO;
-import com.panzhihua.common.model.dtos.neighbor.ComActNeighborFabulousAppDTO;
-import com.panzhihua.common.model.dtos.neighbor.ComActNeighborForwardAppDTO;
-import com.panzhihua.common.model.dtos.neighbor.ComActNeighborReplyAppDTO;
-import com.panzhihua.common.model.dtos.neighbor.DetailNeighborAllCommentByAdminDTO;
-import com.panzhihua.common.model.dtos.neighbor.DetailNeighborCommentReplyByAdminDTO;
 import com.panzhihua.common.model.dtos.shop.ComShopAddressDTO;
 import com.panzhihua.common.model.dtos.shop.ComShopCartDTO;
 import com.panzhihua.common.model.dtos.shop.ComShopEditNubCartDTO;
@@ -109,6 +185,53 @@
 import com.panzhihua.common.model.vos.DictionaryVO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.SystemmanagementConfigVO;
+import com.panzhihua.common.model.vos.community.ActivitySignVO;
+import com.panzhihua.common.model.vos.community.BatchhouseVO;
+import com.panzhihua.common.model.vos.community.ComActActEvaluateVO;
+import com.panzhihua.common.model.vos.community.ComActActRegistVO;
+import com.panzhihua.common.model.vos.community.ComActActivityVO;
+import com.panzhihua.common.model.vos.community.ComActDynVO;
+import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO;
+import com.panzhihua.common.model.vos.community.ComActMessageBackVO;
+import com.panzhihua.common.model.vos.community.ComActMessageVO;
+import com.panzhihua.common.model.vos.community.ComActMicroWishVO;
+import com.panzhihua.common.model.vos.community.ComActReserveCommitVO;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideVO;
+import com.panzhihua.common.model.vos.community.ComCvtServeExcelVO;
+import com.panzhihua.common.model.vos.community.ComEldersAuthElderlyDetailsVO;
+import com.panzhihua.common.model.vos.community.ComMngBuildingExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngCarExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationCorrectExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationCultExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationDisabilityExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationDrugExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationKeyExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationLowSecurityExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationMajorExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationRehabilitationExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationSentenceExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationServeExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationVeteransExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngRealAssetsExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngRealAssetsVO;
+import com.panzhihua.common.model.vos.community.ComMngRealCompanyExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngRealCompanyVO;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.common.model.vos.community.ComMngStructHouseVO;
+import com.panzhihua.common.model.vos.community.ComMngStructOtherBuildVO;
+import com.panzhihua.common.model.vos.community.ComMngVillageServeExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO;
+import com.panzhihua.common.model.vos.community.ComOpsHouseUndercarriageVO;
+import com.panzhihua.common.model.vos.community.ComOpsHouseVO;
+import com.panzhihua.common.model.vos.community.ComStreetVO;
+import com.panzhihua.common.model.vos.community.ComSwRotaExcelVO;
+import com.panzhihua.common.model.vos.community.EldersAuthDetailsVO;
+import com.panzhihua.common.model.vos.community.EldersAuthElderlyExcelVO;
+import com.panzhihua.common.model.vos.community.ResetComActMessageVO;
+import com.panzhihua.common.model.vos.community.SignactivityVO;
 import com.panzhihua.common.model.vos.community.bigscreen.BigScreenStatisticAgeGender;
 import com.panzhihua.common.model.vos.community.bigscreen.BigScreenStatisticPartyActivity;
 import com.panzhihua.common.model.vos.community.bigscreen.BigScreenStatisticPartyBuild;
@@ -116,7 +239,6 @@
 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.community.reserve.*;
 import com.panzhihua.common.model.vos.neighbor.AddNeighborCircleAdminVO;
 import com.panzhihua.common.model.vos.neighbor.ChangeCommentReplyStatusByAdminVO;
 import com.panzhihua.common.model.vos.neighbor.ChangeCommentStatusByAdminVO;
@@ -205,7 +327,7 @@
      * @return 详情
      */
     @PostMapping("detailactivity")
-    R detailActivity(@RequestParam("id") Long id, @RequestParam(value = "userId", required = false) Long userId);
+    R detailActivity(@RequestParam("id") Long id, @RequestParam(value = "userId", required = false) Long userId,@RequestParam(value = "pageNum", required = false) Long pageNum,@RequestParam(value = "pageSize", required = false) Long pageSize);
 
     /**
      * 分页活动报名名单
@@ -296,6 +418,15 @@
      */
     @GetMapping("/activity/picture/getList")
     R getPictureList(@RequestParam("userId") Long userId);
+
+    /**
+     * 获取系统预置图库  getSysPictureList
+     * @return    R   系统图库集
+     * @author txb
+     * @date 2021/8/27 13:33
+     */
+    @GetMapping("/activity/sysPicture/getList")
+    R getSysPictureList(@RequestParam("type")Integer type);
 
     /**
      * 活动报名名单
@@ -410,6 +541,16 @@
      */
     @PostMapping("pagemicrowish")
     R pageMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 小程序分页查询微心愿
+     *
+     * @param comActMicroWishVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pagemicrowish/applets")
+    R pageMicroWishApplets(@RequestBody ComActMicroWishVO comActMicroWishVO);
 
     /**
      * 心愿详情
@@ -1133,7 +1274,7 @@
     R addComActEasyPhotoComment(@RequestBody ComActEasyPhotoCommentDTO comActEasyPhotoCommentDTO);
 
     /**
-     * 一起议-新增
+     * 议事投票-新增
      *
      * @param comActDiscussDTO
      *            新增参数
@@ -1143,17 +1284,35 @@
     R addDiscuss(@RequestBody ComActDiscussDTO comActDiscussDTO);
 
     /**
-     * 一起议-详情
+     * 议事投票-新增
      *
-     * @param id
-     *            主键
+     * @param comActDiscussDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    @PostMapping("editdiscuss")
+    R editDiscuss(@RequestBody ComActDiscussDTO comActDiscussDTO);
+
+    /**
+     * 议事投票-详情
+     *
+     * @param discussDetailDTO
+     *            请求参数
      * @return ComActDiscussVO
      */
     @PostMapping("detaildiscuss")
-    R detailDiscuss(@RequestParam("id") Long id);
+    R detailDiscuss(@RequestBody ComActDiscussDetailDTO discussDetailDTO);
 
     /**
-     * 一起议-删除
+     * 分页查询评论下回复列表
+     * @param discussDetailDTO  请求参数
+     * @return  回复列表
+     */
+    @PostMapping("discussCommentReplyAdmin")
+    R discussCommentReplyAdmin(@RequestBody ComActDiscussDetailDTO discussDetailDTO);
+
+    /**
+     * 议事投票-删除
      *
      * @param id
      *            主键
@@ -1163,7 +1322,7 @@
     R deleteDiscuss(@RequestParam("id") Long id);
 
     /**
-     * 一起议-回复
+     * 议事投票-回复
      *
      * @param comActDiscussCommentDTO
      *            评论内容
@@ -1173,7 +1332,7 @@
     R addDiscussComment(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO);
 
     /**
-     * 一起议-分页查询
+     * 议事投票-分页查询
      *
      * @param pageComActDiscussDTO
      *            查询参数
@@ -1183,7 +1342,17 @@
     R pageDiscuss(@RequestBody PageComActDiscussDTO pageComActDiscussDTO);
 
     /**
-     * 一起议-评论-查看
+     * 议事投票-后台分页查询
+     *
+     * @param pageComActDiscussDTO
+     *            查询参数
+     * @return ComActDiscussVO
+     */
+    @PostMapping("pagediscussAdmin")
+    R pageDiscussAdmin(@RequestBody PageComActDiscussDTO pageComActDiscussDTO);
+
+    /**
+     * 议事投票-评论-查看
      *
      * @param id
      *            主键
@@ -1193,7 +1362,15 @@
     R detailDiscussComment(@RequestParam("id") Long id);
 
     /**
-     * 一起议-评论-置顶
+     * 议事投票评论详情
+     * @param pageComActDiscussCommentDTO   请求参数
+     * @return  议事投票详情
+     */
+    @PostMapping("detaildiscusscommentAdmin")
+    R detailDiscussCommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 议事投票-评论-置顶
      *
      * @param id
      *            主键
@@ -1203,7 +1380,7 @@
     R putDiscussCommentTop(@RequestParam("id") Long id);
 
     /**
-     * 一起议-评论-回复
+     * 议事投票-评论-回复
      *
      * @param comActDiscussCommentDTO
      *            回复内容
@@ -1213,7 +1390,7 @@
     R addDiscussCommentBack(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO);
 
     /**
-     * 一起议-评论-分页查询
+     * 议事投票-评论-分页查询
      *
      * @param pageComActDiscussCommentDTO
      *            分页查询参数
@@ -1223,7 +1400,17 @@
     R pageDiscussComment(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
 
     /**
-     * 一起议-分页查询 小程序
+     * 议事投票-评论-后台分页查询
+     *
+     * @param pageComActDiscussCommentDTO
+     *            分页查询参数
+     * @return ComActDiscussCommentVO
+     */
+    @PostMapping("pagediscusscommentAdmin")
+    R pageDiscussCommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 议事投票-分页查询 小程序
      *
      * @param pageComActDiscussDTO
      *            查询参数
@@ -1233,7 +1420,7 @@
     R pageDiscussApplets(@RequestBody PageComActDiscussDTO pageComActDiscussDTO);
 
     /**
-     * 一起议-点赞、取消点赞
+     * 议事投票-点赞、取消点赞
      *
      * @param comActDiscussUserDTO
      *            操作类型
@@ -1243,7 +1430,7 @@
     R putDiscussUser(@RequestBody ComActDiscussUserDTO comActDiscussUserDTO);
 
     /**
-     * 一起议-评论-分页查询 小程序
+     * 议事投票-评论-分页查询 小程序
      *
      * @param pageComActDiscussCommentDTO
      *            分页参数
@@ -1253,7 +1440,7 @@
     R pageDiscussCommentApplets(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
 
     /**
-     * 一起议-详情 小程序
+     * 议事投票-详情 小程序
      *
      * @param id
      *            主键
@@ -1265,7 +1452,7 @@
     R detailDiscussApplets(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
 
     /**
-     * 一起议-投票
+     * 议事投票-投票
      *
      * @param comActDiscussOptionUserDTO
      *            投票信息
@@ -1275,7 +1462,7 @@
     R addDiscussOptionUser(@RequestBody ComActDiscussOptionUserDTO comActDiscussOptionUserDTO);
 
     /**
-     * 一起议-评论-点赞、取消点赞
+     * 议事投票-评论-点赞、取消点赞
      *
      * @param comActDiscussUserDTO
      *            评论点赞
@@ -1450,7 +1637,7 @@
     R pageComCvtBusinessByServiceArea(@RequestBody PageComCvtBusinessAppletsDTO comCvtBusinessAppletsDTO);
 
     /**
-     * 一起议-新增
+     * 议事投票-新增
      *
      * @param comOpsHouseDTO
      *            新增参数
@@ -1460,7 +1647,7 @@
     R addOpsHouse(@RequestBody ComOpsHouseDTO comOpsHouseDTO);
 
     /**
-     * 一起议-详情
+     * 议事投票-详情
      *
      * @param id
      *            主键
@@ -1500,7 +1687,7 @@
     R undercarriageHouse(@RequestBody ComOpsHouseUndercarriageVO comOpsHouseVO);
 
     /**
-     * 一起议-删除
+     * 议事投票-删除
      *
      * @param id
      *            主键
@@ -1694,7 +1881,7 @@
      */
     @PostMapping("/convenient/serve/import")
     R listSaveConvenientServeExcelVO(@RequestBody List<ComCvtServeExcelVO> list,
-        @RequestParam(value = "communityId", required = false) Long communityId);
+                                     @RequestParam(value = "communityId", required = false) Long communityId);
 
     /**
      * 导出房屋信息
@@ -1810,7 +1997,7 @@
      */
     @PostMapping("/common/data/company/import")
     R listSaveMngRealCompanyExcelVO(@RequestBody List<ComMngRealCompanyExcelVO> list,
-        @RequestParam("communityId") Long communityId);
+                                    @RequestParam("communityId") Long communityId);
 
     /**
      * 实有单位导出
@@ -1865,7 +2052,7 @@
      */
     @PostMapping("/common/data/assets/import")
     R listSaveMngRealAssetsExcelVO(@RequestBody List<ComMngRealAssetsExcelVO> list,
-        @RequestParam("communityId") Long communityId);
+                                   @RequestParam("communityId") Long communityId);
 
     /**
      * 实有单位导出
@@ -2013,7 +2200,7 @@
      */
     @PostMapping("/village/import")
     R listSaveVillageServeExcelVO(@RequestBody List<ComMngVillageServeExcelVO> list,
-        @RequestParam(value = "communityId") Long communityId);
+                                  @RequestParam(value = "communityId") Long communityId);
 
     /**
      * 批量导入实有人口
@@ -2026,7 +2213,7 @@
      */
     @PostMapping("/common/data/population/import")
     R listSavePopulationServeExcelVO(@RequestBody List<ComMngPopulationServeExcelVO> list,
-        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+                                     @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
 
     /**
      * 批量导入吸毒人员
@@ -2039,7 +2226,7 @@
      */
     @PostMapping("/common/data/population/importDrug")
     R listSavePopulationDrugExcelVO(@RequestBody List<ComMngPopulationDrugExcelVO> list,
-        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+                                    @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
 
     /**
      * 批量导入社区矫正人员
@@ -2052,7 +2239,7 @@
      */
     @PostMapping("/common/data/population/importCorrect")
     R listSavePopulationCorrectExcelVO(@RequestBody List<ComMngPopulationCorrectExcelVO> list,
-        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+                                       @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
 
     /**
      * 批量导入重精人员
@@ -2065,7 +2252,7 @@
      */
     @PostMapping("/common/data/population/importMajor")
     R listSavePopulationMajorExcelVO(@RequestBody List<ComMngPopulationMajorExcelVO> list,
-        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+                                     @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
 
     /**
      * 批量导入邪教人员
@@ -2078,7 +2265,7 @@
      */
     @PostMapping("/common/data/population/importCult")
     R listSavePopulationCultExcelVO(@RequestBody List<ComMngPopulationCultExcelVO> list,
-        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+                                    @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
 
     /**
      * 批量导入刑释人员
@@ -2091,7 +2278,7 @@
      */
     @PostMapping("/common/data/population/importRehabilitation")
     R listSavePopulationRehabilitationExcelVO(@RequestBody List<ComMngPopulationRehabilitationExcelVO> list,
-        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+                                              @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
 
     /**
      * 批量导入重点上访人员
@@ -2104,7 +2291,7 @@
      */
     @PostMapping("/common/data/population/importKey")
     R listSavePopulationKeyExcelVO(@RequestBody List<ComMngPopulationKeyExcelVO> list,
-        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+                                   @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
 
     /**
      * 批量导入服刑人员
@@ -2117,7 +2304,7 @@
      */
     @PostMapping("/common/data/population/importSentence")
     R listSavePopulationSentenceExcelVO(@RequestBody List<ComMngPopulationSentenceExcelVO> list,
-        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+                                        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
 
     /**
      * 批量导入退役军人
@@ -2130,7 +2317,7 @@
      */
     @PostMapping("/common/data/population/importVeterans")
     R listSavePopulationVeteransExcelVO(@RequestBody List<ComMngPopulationVeteransExcelVO> list,
-        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+                                        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
 
     /**
      * 批量导入残疾人
@@ -2143,7 +2330,7 @@
      */
     @PostMapping("/common/data/population/importDisability")
     R listSavePopulationDisabilityExcelVO(@RequestBody List<ComMngPopulationDisabilityExcelVO> list,
-        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+                                          @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
 
     /**
      * 批量导入低保户
@@ -2156,7 +2343,57 @@
      */
     @PostMapping("/common/data/population/importLowSecurity")
     R listSavePopulationLowSecurityExcelVO(@RequestBody List<ComMngPopulationLowSecurityExcelVO> list,
-        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+                                           @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入高龄老人  listSavePopulationElderExcelVO  批量导入高龄老人
+     * @param    list  高龄老人数据
+     * @param    communityId   社区id
+     * @return    R   导入结果
+     * @author txb
+     * @date 2021/9/01 15:03
+     */
+    @PostMapping("/common/data/population/importElder")
+    R listSavePopulationElderExcelVO(@RequestBody List<ComMngPopulationElderExcelVO> list,
+                                    @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入养老金人员  listSavePopulationPensionExcelVO  批量导入养老金人员
+     * @param    list  养老金人员数据
+     * @param    communityId   社区id
+     * @return    R   导入结果
+     * @author txb
+     * @date 2021/9/01 15:03
+     */
+    @PostMapping("/common/data/population/importPension")
+    R listSavePopulationPensionExcelVO(@RequestBody List<ComMngPopulationPensionExcelVO> list,
+                                     @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入高龄老人线下认证记录  listSaveElderAuthRecordExcelVO  批量导入高龄老人线下认证记录
+     * @param    list  高龄老人线下认证记录数据
+     * @param    communityId   社区id
+     * @param    userId   登录人id
+     * @return    R   导入结果
+     * @author txb
+     * @date 2021/9/01 15:03
+     */
+    @PostMapping("/elders/authRecords/underLine/import")
+    R listSaveElderAuthRecordExcelVO(@RequestBody List<ComElderAuthRecordImportExcelVO> list,
+                                       @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入养老线下认证记录  listSavePensionAuthRecordExcelVO  批量导入养老线下认证记录
+     * @param    list  养老线下认证记录数据
+     * @param    communityId   社区id
+     * @param    userId   登录人id
+     * @return    R   导入结果
+     * @author txb
+     * @date 2021/9/01 15:03
+     */
+    @PostMapping("/elders/pensionAuthRecords/underLine/import")
+    R listSavePensionAuthRecordExcelVO(@RequestBody List<ComPensionAuthRecordImportExcelVO> list,
+                                     @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
 
     /**
      * 确认导入实有人口(有则更新,无则新建)
@@ -2169,7 +2406,7 @@
      */
     @PostMapping("/common/data/population/import/confirm")
     R listSavePopulationConfirm(@RequestBody List<ComMngPopulationServeExcelVO> list,
-        @RequestParam(value = "communityId") Long communityId);
+                                @RequestParam(value = "communityId") Long communityId);
 
     /**
      * 分页查询实有人口
@@ -2189,7 +2426,7 @@
      * @return 实有人口详细信息
      */
     @PostMapping("/common/data/population/detail")
-    R<ComMngPopulationVO> detailPopulation(@RequestParam(value = "populationId") Long populationId);
+    R<ComMngPopulationVO> detailPopulation(@RequestParam(value = "populationId") Long populationId, @RequestParam(value = "communityId") Long communityId);
 
     /**
      * 根据id查询实有人口电子档案信息
@@ -2329,7 +2566,7 @@
 
     /**
      * 小程序-问卷调查详情
-     * 
+     *
      * @param userId
      *            用户id
      * @param questId
@@ -2341,7 +2578,7 @@
 
     /**
      * 小程序-新增问卷调查浏览数量
-     * 
+     *
      * @param questId
      *            问卷调查id
      * @return 增加结果
@@ -2351,7 +2588,7 @@
 
     /**
      * 小程序-用户弹窗添加不在提醒接口
-     * 
+     *
      * @param questId
      *            问卷id
      * @param userId
@@ -2363,7 +2600,7 @@
 
     /**
      * 社区后台-查询问卷调查详情
-     * 
+     *
      * @param questId
      *            问卷id
      * @return 问卷调查详情
@@ -2887,7 +3124,7 @@
      */
     @PostMapping("/common/data/population/edit")
     R editPopulation(@RequestBody ComMngPopulationEditDTO populationEditDTO,
-        @RequestParam("communityId") Long communityId);
+                     @RequestParam("communityId") Long communityId);
 
     /**
      * 微心愿删除
@@ -2964,6 +3201,45 @@
      */
     @PostMapping("/delectworkguide")
     R delectWorkGuide(@RequestParam("workGuideId") Long workGuideId);
+
+    /**
+     * 分页查询办事指南-分类管理 pageWorkGuideClassify  分页查询办事指南-分类管理
+     * @param    comActWorkGuideClassifyVO   查询参数
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @PostMapping("/workGuide/classify/apage")
+    R pageWorkGuideClassify(@RequestBody ComActWorkGuideClassifyVO comActWorkGuideClassifyVO);
+
+    /**
+     * 办事指南-分类管理新增或修改  addWorkGuideClassify  办事指南-分类管理新增或修改
+     * @param    comActWorkGuideClassifyVO   新增或修改参数
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @PostMapping("/workGuide/classify/add")
+    R addWorkGuideClassify(@RequestBody ComActWorkGuideClassifyVO comActWorkGuideClassifyVO);
+
+    /**
+     * 办事指南-分类管理删除  deleteWorkGuideClassify  办事指南-分类管理删除
+     * @param    workGuideClassifyId    办事指南-分类管理id
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @GetMapping("/workGuide/classify/delete")
+    R deleteWorkGuideClassify(@RequestParam("workGuideClassifyId") Long workGuideClassifyId);
+
+    /**
+     * 办事指南-分类管理列表查询  getWorkGuideClassifyList  办事指南-分类管理列表查询
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @GetMapping("/workGuide/classify/getList")
+    R getWorkGuideClassifyList();
 
     /**
      * 分页查询邻里圈
@@ -3409,6 +3685,148 @@
     @PostMapping("/eldersauth/addFeedback")
     R addFeedback(@RequestBody EldersAuthFeedbackAddDTO eldersAuthFeedbackAddDTO);
 
+    //2021-8-30 身份认证改版(高龄老人认证管理)接口
+    /**
+     * 分页查询高龄老人认证记录  pageElderAuthRecords  分页查询高龄老人认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/elders/authRecords/page")
+    R pageElderAuthRecords(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
+
+    /**
+     * 根据高龄认证记录id查询详情 detailElderAuthRecords  根据高龄认证记录id查询详情
+     * @param    authRecordId   高龄认证记录id
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @GetMapping("/elders/authRecords/detail")
+    R detailElderAuthRecords(@RequestParam(value = "authRecordId") Long authRecordId);
+
+    /**
+     * 高龄认证审核 examineElderAuthRecords  高龄认证审核
+     * @param    comElderAuthRecordVO   高龄认证审核参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/elders/authRecords/examine")
+    R examineElderAuthRecords(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO);
+
+    /**
+     * 高龄认证标记 examineElderAuthRecords  高龄认证标记
+     * @param    comElderAuthRecordVO   高龄认证标记参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/elders/authRecords/sign")
+    R signElderAuthRecords(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO);
+
+    /**
+     * 根据高龄认证记录id批量查询 getElderAuthRecordsByIds  根据高龄认证记录id批量查询
+     * @param    ids   高龄认证记录id集合
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/elders/authRecords/getList")
+    R getElderAuthRecordsByIds(@RequestBody List<Long> ids);
+
+    /**
+     * 导出高龄认证统计记录 exportElderAuthRecordsStatistic
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/elders/authRecords/statistic/export")
+    R exportElderAuthRecordsStatistic(@RequestBody PageElderAuthStatisticDTO pageElderAuthRecordsDTO);
+
+    /**
+     * 分页查询养老金人员认证记录  pagePensionAuthRecords  分页查询养老金人员认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/07 14:03
+     */
+    @PostMapping("/elders/pensionAuthRecords/page")
+    R pagePensionAuthRecords(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
+
+    /**
+     * 根据养老认证记录id查询详情 detailPensionAuthRecords  根据养老认证记录id查询详情
+     * @param    authRecordId   养老认证记录id
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/07 11:03
+     */
+    @GetMapping("/elders/pensionAuthRecords/detail")
+    R detailPensionAuthRecords(@RequestParam(value = "authRecordId") Long authRecordId);
+
+    /**
+     * 养老认证审核 examinePensionAuthRecords  养老认证审核
+     * @param    comPensionAuthRecordVO   养老认证审核参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/07 11:03
+     */
+    @PostMapping("/elders/pensionAuthRecords/examine")
+    R examinePensionAuthRecords(@RequestBody ComPensionAuthRecordVO comPensionAuthRecordVO);
+
+    /**
+     * 养老认证标记 signPensionAuthRecords  养老认证标记
+     * @param    comPensionAuthRecordVO   养老认证标记参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/elders/pensionAuthRecords/sign")
+    R signPensionAuthRecords(@RequestBody ComPensionAuthRecordVO comPensionAuthRecordVO);
+
+    /**
+     * 根据养老认证记录id批量查询 getPensionAuthRecordsByIds  根据养老认证记录id批量查询
+     * @param    ids   养老认证记录id集合
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/elders/pensionAuthRecords/getList")
+    R getPensionAuthRecordsByIds(@RequestBody List<Long> ids);
+
+    /**
+     * 导出养老认证记录 exportPensionAuthRecordsStatistic  导出养老认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/elders/pensionAuthRecords/statistic/export")
+    R exportPensionAuthRecordsStatistic(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
+
+    /**
+     * 查询养老认证社区认证方式 setPensionAuthType  查询养老认证社区认证方式
+     * @param    eldersAuthTypeQueryDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/10 16:03
+     */
+    @PostMapping("/elders/pensionAuthRecords/authtype")
+    R communityPensionAuthType(@RequestBody EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO);
+
+    /**
+     * 设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验) setPensionAuthType  设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验)
+     * @param    communityId   社区id
+     * @param    type         检验类型
+     * @return    R  设置结果
+     * @author txb
+     * @date 2021/9/10 16:03
+     */
+    @PutMapping("/elders/pensionAuthRecords/authType/{type}")
+    R setPensionAuthType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type);
+
     /**
      * 小程序-查询疫苗分类列表
      *
@@ -3557,7 +3975,7 @@
      * @param eldersAuthTypeQueryDTO
      * @return
      */
-    @PostMapping("/elders/authtype")
+    @PostMapping("/elders/authType")
     R communityElderAuthType(@RequestBody EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO);
 
     /**
@@ -3578,7 +3996,7 @@
      */
     @PostMapping("/eldersauthelderly/batchSave")
     R listSaveEldersAuthElderlyExcelVO(@RequestBody List<EldersAuthElderlyExcelVO> newVoList,
-        @RequestParam("communityId") Long communityId, @RequestParam("createBy") Long createBy);
+                                       @RequestParam("communityId") Long communityId, @RequestParam("createBy") Long createBy);
 
     /**
      * 批量保存楼栋
@@ -3589,7 +4007,7 @@
      */
     @PostMapping("/building/batchSave")
     R listSaveBuildingExcelVO(@RequestBody List<ComMngBuildingExcelVO> newVoList,
-        @RequestParam("communityId") Long communityId);
+                              @RequestParam("communityId") Long communityId);
 
     /**
      * 插入字典
@@ -3769,7 +4187,7 @@
      */
     @PostMapping("/bigscreen/party/ageGender")
     R<BigScreenStatisticAgeGender>
-        ageGender(@RequestBody BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO);
+    ageGender(@RequestBody BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO);
 
     /**
      * 党建数据概览
@@ -3794,7 +4212,7 @@
      */
     @PostMapping("/bigscreen/party/bigscreenPartyactivity")
     R<List<BigScreenStatisticPartyActivity>>
-        bigscreenPartyactivity(BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO);
+    bigscreenPartyactivity(BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO);
 
     /**
      * 首页大屏统计接口
@@ -3842,7 +4260,7 @@
     R activity(@RequestParam("communityId") Long communityId);
 
     /**
-     * 大屏统计一起议
+     * 大屏统计议事投票
      *
      * @param communityId
      * @return
@@ -3910,11 +4328,11 @@
     R getScreenEventDetail(@RequestBody BigScreenEventDetailDTO eventDetailDTO);
 
     /**
-     * 工作大屏-一起议列表
+     * 工作大屏-议事投票列表
      *
      * @param discussListDTO
      *            请求参数
-     * @return 一起议列表
+     * @return 议事投票列表
      */
     @PostMapping("/screen/work/getScreenDiscussList")
     R getScreenDiscussList(@RequestBody ScreenDiscussListDTO discussListDTO);
@@ -4313,7 +4731,7 @@
 
     /**
      * 查询用户交易记录总额
-     * 
+     *
      * @param pageTradeAdminDTO
      *            请求参数
      * @return 交易记录总额
@@ -4323,7 +4741,7 @@
 
     /**
      * 查询用户导出数据
-     * 
+     *
      * @param pageTradeAdminDTO
      *            请求参数
      * @return 用户导出数据
@@ -4333,7 +4751,7 @@
 
     /**
      * 导出奖励台账数据
-     * 
+     *
      * @param pageTradeAdminDTO
      *            请求参数
      * @return 奖励台账数据
@@ -4343,7 +4761,7 @@
 
     /**
      * 查询社区统计数据
-     * 
+     *
      * @param pageTradeAdminDTO
      *            查询社区统计数据
      * @return 社区统计数据
@@ -4353,7 +4771,7 @@
 
     /**
      * 社区随手拍列表统计
-     * 
+     *
      * @param communityId
      *            社区id
      * @return 统计结果
@@ -4399,7 +4817,7 @@
      * @return 邻里圈话题列表
      */
     @GetMapping("/neighbor/getNeighborTopicByApp")
-    R getNeighborTopicByApp(@RequestParam("communityId") Long communityId);
+    R getNeighborTopicByApp(@RequestParam("communityId") Long communityId,@RequestParam("isZero") Integer isZero,@RequestParam("name") String name);
 
     /**
      * 综治后台-查询社区列表
@@ -4492,6 +4910,17 @@
     R getUserReward(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId);
 
     /**
+     * 获取首页弹窗接口
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 首页弹窗接口
+     */
+    @PostMapping("/easyphoto/getUserRewards")
+    R getUserRewards(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId);
+
+    /**
      * 读取用户随手拍奖励
      *
      * @param userId
@@ -4522,6 +4951,16 @@
     R addPatrolRecord(@RequestBody ComSwPatrolRecordAddDTO comSwPatrolRecordAddDTO);
 
     /**
+     * 编辑巡查记录 editPatrolRecord  编辑巡查记录
+     * @param    comSwPatrolRecordEditDTO   编辑巡查记录参数
+     * @return    R  编辑结果
+     * @author txb
+     * @date 2021/9/08 17:03
+     */
+    @PostMapping("/patrolRecord/edit")
+    R editPatrolRecord(@RequestBody ComSwPatrolRecordEditDTO comSwPatrolRecordEditDTO);
+
+    /**
      * 根据巡查记录id查询详情
      *
      * @param patrolRecordId
@@ -4542,6 +4981,16 @@
     R pageSafetyWorkRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
 
     /**
+     * 编辑安全工作记录 editSafetyWork  编辑安全工作记录
+     * @param    comSwSafetyWorkEditDTO   编辑安全工作记录参数
+     * @return    R  编辑结果
+     * @author txb
+     * @date 2021/9/08 17:03
+     */
+    @PostMapping("/patrolRecord/safetyWorkRecord/edit")
+    R editSafetyWork(@RequestBody ComSwSafetyWorkEditDTO comSwSafetyWorkEditDTO);
+
+    /**
      * 根据安全工作记录id查询详情
      *
      * @param safetyWorkRecordId
@@ -4550,7 +4999,7 @@
      */
     @GetMapping("/patrolRecord/safetyWorkRecord/detail")
     R detailSafetyWorkRecord(@RequestParam(value = "safetyWorkRecordId") Long safetyWorkRecordId,
-        @RequestParam(value = "communityId", required = false) Long communityId);
+                             @RequestParam(value = "communityId", required = false) Long communityId);
 
     /**
      * 根据巡查记录id查询安全工作记录详情
@@ -4561,7 +5010,7 @@
      */
     @GetMapping("/patrolRecord/safetyWorkRecord/detailByPrId")
     R detailSafetyWorkRecordByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId,
-        @RequestParam(value = "communityId", required = false) Long communityId);
+                                   @RequestParam(value = "communityId", required = false) Long communityId);
 
     /**
      * 分页查询隐患报告
@@ -4572,6 +5021,16 @@
      */
     @PostMapping("/patrolRecord/dangerReport/page")
     R pageDangerReport(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
+
+    /**
+     * 编辑隐患报告 editDangerReport  编辑隐患报告
+     * @param    comSwDangerReportEditDTO   编辑隐患报告参数
+     * @return    R  编辑结果
+     * @author txb
+     * @date 2021/9/08 17:03
+     */
+    @PostMapping("/patrolRecord/dangerReport/edit")
+    R editDangerReport(@RequestBody ComSwDangerReportEditDTO comSwDangerReportEditDTO);
 
     /**
      * 根据隐患报告id查询详情
@@ -4632,7 +5091,7 @@
 
     /**
      * 小程序-查询积分说明
-     * 
+     *
      * @return 积分说明
      */
     @GetMapping("/integral/explain/applets")
@@ -4640,7 +5099,7 @@
 
     /**
      * 小程序-用户查询当前社区可领取积分规则列表
-     * 
+     *
      * @param userId
      *            用户id
      * @param communityId
@@ -4652,7 +5111,7 @@
 
     /**
      * 小程序-查询用户积分列表
-     * 
+     *
      * @param userId
      *            用户id
      * @return 用户积分列表
@@ -4662,7 +5121,7 @@
 
     /**
      * 小程序-查询社区积分账户排行榜
-     * 
+     *
      * @param communityRankDTO
      *            请求参数
      * @return 社区积分账户排行榜
@@ -4672,7 +5131,7 @@
 
     /**
      * 小程序-查询用户社区积分明细
-     * 
+     *
      * @param communityTradeDTO
      *            请求参数
      * @return 用户社区积分明细
@@ -4682,7 +5141,7 @@
 
     /**
      * 社区后台-根据社区id查询社区下积分规则列表
-     * 
+     *
      * @param integralRuleDTO
      *            请求参数
      * @return 社区下积分规则列表
@@ -4692,7 +5151,7 @@
 
     /**
      * 社区后台-编辑社区积分规则
-     * 
+     *
      * @param integralRuleDTO
      *            请求参数
      * @return 编辑结果
@@ -4702,7 +5161,7 @@
 
     /**
      * 社区后台-分页查询社区下积分明细记录
-     * 
+     *
      * @param integralRuleDTO
      *            请求参数
      * @return 社区下积分明细记录
@@ -4712,7 +5171,7 @@
 
     /**
      * 给用户添加积分
-     * 
+     *
      * @param integralUserDTO
      *            请求参数
      * @return 添加积分结果
@@ -4722,7 +5181,7 @@
 
     /**
      * 根据社区活动id查询社区活动报名人员列表
-     * 
+     *
      * @param activityId
      *            活动id
      * @return 社区活动报名人员列表
@@ -4742,7 +5201,7 @@
 
     /**
      * 根据id查询值班表
-     * 
+     *
      * @param rotaId
      *            值班表id
      * @return 值班表详情
@@ -4762,7 +5221,7 @@
 
     /**
      * 批量删除值班表
-     * 
+     *
      * @param rotaIds
      *            值班ids
      * @return 删除结果
@@ -4809,7 +5268,7 @@
 
     /**
      * 查询社区所有列表
-     * 
+     *
      * @return 社区列表
      */
     @GetMapping("/switch/community/all/list")
@@ -4817,7 +5276,7 @@
 
     /**
      * 根据名字查询所有社区列表
-     * 
+     *
      * @param name
      *            社区名字
      * @return 社区列表
@@ -4827,7 +5286,7 @@
 
     /**
      * 根据经纬度以及距离搜索附近社区列表
-     * 
+     *
      * @param communityDTO
      *            请求参数
      * @return 社区列表
@@ -4837,7 +5296,7 @@
 
     /**
      * 问卷调查统计汇总
-     * 
+     *
      * @param summaryDTO
      *            请求参数
      * @return 统计汇总
@@ -4847,7 +5306,7 @@
 
     /**
      * 问卷调查统计汇总导出数据查询
-     * 
+     *
      * @param questId
      *            调查问卷id
      * @return 调查统计汇总导出数据
@@ -4857,7 +5316,7 @@
 
     /**
      * 问卷调查统计汇总表头统计
-     * 
+     *
      * @param questId
      *            调查问卷id
      * @return 问卷调查统计汇总表头统计数据
@@ -4867,7 +5326,7 @@
 
     /**
      * 运营后台-新增随手拍分类
-     * 
+     *
      * @param addPhotoClassify
      *            请求参数
      * @return 新增结果
@@ -4877,7 +5336,7 @@
 
     /**
      * 运营后台-编辑随手拍分类
-     * 
+     *
      * @param addPhotoClassify
      *            请求参数
      * @return 编辑结果
@@ -4887,7 +5346,7 @@
 
     /**
      * 运营后台-分页查询随手拍分类
-     * 
+     *
      * @param addPhotoClassify
      *            请求参数
      * @return 随手拍分类列表
@@ -4897,7 +5356,7 @@
 
     /**
      * 运营后台-随手拍分类详情
-     * 
+     *
      * @param id
      *            随手拍分类id
      * @return 随手拍分类
@@ -4907,7 +5366,7 @@
 
     /**
      * 运营后台-随手拍分类删除
-     * 
+     *
      * @param id
      *            随手拍分类id
      * @return 删除结果
@@ -4917,7 +5376,7 @@
 
     /**
      * 运营后台-查询随手拍分类列表
-     * 
+     *
      * @return 随手拍分类列表
      */
     @GetMapping("/classify/admin/list")
@@ -4925,7 +5384,7 @@
 
     /**
      * 社区后台-切换随手拍公示状态
-     * 
+     *
      * @param comActEasyPhotoVO
      *            请求参数
      * @return 切换结果
@@ -4935,7 +5394,7 @@
 
     /**
      * 查询社区待处理随手拍id集合
-     * 
+     *
      * @param communityId
      *            社区id
      * @return 社区待处理随手拍id集合
@@ -5195,6 +5654,281 @@
     R timedTaskActivityDefaultPraise();
 
     /**
+     * 小程序-用户新增话题
+     * @param circleTopicAppDTO 请求参数
+     * @return  新增结果
+     */
+    @PostMapping("/neighbor/addNeighborTopicByApp")
+    R addNeighborTopicByApp(@RequestBody AddNeighborCircleTopicAppDTO circleTopicAppDTO);
+
+    /**
+     * 小程序-删除邻里圈
+     * @param circleTopicAppDTO 请求参数
+     * @return  删除结果
+     */
+    @PostMapping("/neighbor/deleteNeighborByApp")
+    R deleteNeighborByApp(@RequestBody DeleteNeighborCircleAppDTO circleTopicAppDTO);
+
+    /**
+     * 获取系统配置value
+     * @param key   系统配置code
+     * @param communityId   社区id
+     * @return  系统配置value
+     */
+    @GetMapping("/sys/conf/getSysConfValue")
+    R getSysConfValue(@RequestParam("key") String key,@RequestParam("communityId") Long communityId);
+
+    /**
+     * 新增系统配置
+     * @param key   系统配置code
+     * @param communityId   社区id
+     * @param name  系统配置名称
+     * @param value 系统配置value
+     * @return  新增结果
+     */
+    @GetMapping("/sys/conf/addSysConfValue")
+    R addSysConfValue(@RequestParam("key") String key,@RequestParam("communityId") Long communityId,@RequestParam("name") String name,@RequestParam("value") String value);
+
+    /**
+     * 编辑系统配置
+     * @param communityId   社区id
+     * @param status    配置值
+     * @return  编辑结果
+     */
+    @GetMapping("/sys/conf/editSysConfValue")
+    R editSysConfValue(@RequestParam("communityId") Long communityId,@RequestParam("status") Integer status);
+
+    /**
+     * 议事投票后台公布结果
+     * @param publishResultDTO  请求参数
+     * @return  公布结果
+     */
+    @PostMapping("publishResultAdmin")
+    R publishResultAdmin(@RequestBody ComActDiscussPublishResultDTO publishResultDTO);
+
+    /**
+     * 议事投票-评论/回复删除
+     * @param id    评论/回复id
+     * @return  删除结果
+     */
+    @GetMapping("deleteDiscussCommentAdmin")
+    R deleteDiscussCommentAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 查询社区可发布议事投票权限配置
+     * @param communityId   社区id
+     * @return  社区可发布议事投票权限配置
+     */
+    @GetMapping("discussJurisdictionGet")
+    R discussJurisdictionGet(@RequestParam("communityId") Long communityId,@RequestParam("userId") Long userId);
+
+    /**
+     * 设置当前社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员)
+     * @param communityId   社区id
+     * @param value 需要设置的参数值
+     * @return  设置结果
+     */
+    @GetMapping("discussJurisdictionSet")
+    R discussJurisdictionSet(@RequestParam("communityId") Long communityId, @RequestParam("value") String value);
+
+    /**
+     * 议事投票检测状态定时任务
+     * @return  执行结果
+     */
+    @GetMapping("timedTaskDiscussInspectStatus")
+    R timedTaskDiscussInspectStatus();
+
+    /**
+     * 一起议增加浏览量
+     * @param discussId 一起议主键id
+     */
+    @PostMapping("discuss/increase-view-num")
+    void increaseViewNum(@RequestParam("discussId") Long discussId);
+
+    /**
+     * 定时任务每半小时执行一次将一起议浏览量写入到表中
+     */
+    @PostMapping("discuss/write-view-num")
+    R timedTaskWriteDiscussViewNumToTable();
+
+    /**
+     * 公布/编辑一起议投票结果
+     * @param comActDiscussDTO
+     * @return 请求结果
+     */
+    @PostMapping("discuss/edit-result")
+    R editDiscussResult(@RequestBody ComActDiscussDTO comActDiscussDTO);
+
+    /**
+     * 定时任务扫描高龄认证记录信息
+     * @return  执行结果
+     */
+    @PostMapping("/elders/auth/task")
+    R timedTaskEldersAuthJobHandler();
+
+    /**
+     * 定时任务扫描上月高龄认证使用视频认证的用户添加成功记录
+     * @return  执行结果
+     */
+    @PostMapping("/elders/auth/record/task")
+    R timedTaskEldersAuthRecordJobHandler();
+
+    /**
+     * 定时任务每月1号0点统计高龄老人本期应该认证总人数
+     * @return  执行结果
+     */
+    @PostMapping("/elders/authRecords/statistics")
+    R timedTaskElderAuthStatisticsJobHandler();
+
+    /**
+     * 定时任务每年3月1号0点统计养老认证本期应该认证总人数
+     * @return  执行结果
+     */
+    @PostMapping("/elders/pensionAuthRecords/statistics")
+    R timedTaskPensionAuthStatisticsJobHandler();
+
+    /**
+     * 办事指南列表-按分类查询
+     * @param pageActWorkGuideDTO   请求参数
+     * @return  办事指南分类列表
+     */
+    @PostMapping("/listworkguide")
+    R listWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO);
+
+    /**
+     * 根据办事指南分类id查询办事指南列表
+     * @param classifyId   办事指南分类id
+     * @return  办事指南列表数据
+     */
+    @GetMapping("/listworkguide/classify")
+    R listWorkGuideByClassifyId(@RequestParam("classifyId") Long classifyId);
+
+    /**
+     * 小程序查询所有进行中的预约登记
+     * @param communityId   社区id
+     * @return  社区所有进行中的预约登记列表
+     */
+    @GetMapping("/reserve/list")
+    R reserveListApplets(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 查询社区高龄认证方式(1.视频认证 2.人脸核验)
+     * @param eldersAuthTypeQueryDTO    请求参数
+     * @return  社区高龄认证方式(1.视频认证 2.人脸核验)
+     */
+    @PostMapping("/elders/new/authtype")
+    R communityEldersAuthType(@RequestBody EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO);
+
+    /**
+     * 设置当前社区高龄认证方式:核验类型(1.视频认证 2.人脸核验)
+     * @param    communityId   社区id
+     * @param    type         检验类型
+     * @return    R  设置结果
+     */
+    @PutMapping("/elders/new/authType/{type}")
+    R setEldersAuthType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type);
+
+    /**
+     * 新增身份认证
+     * @param addIdentityAuthDTO 新增身份认证请求参数
+     * @return 新增结果结果
+     */
+    @PostMapping("/identity-auth/add")
+    R addIdentityAuth(@RequestBody AddIdentityAuthDTO addIdentityAuthDTO);
+
+    /**
+     * 分页查询身份认证记录
+     * @param pageIdentityAuthRecordDTO 分页查询身份认证记录参数
+     * @return 身份认证记录列表
+     */
+    @PostMapping("/identity-auth/record/page")
+    R queryRecordWithPage(@RequestBody PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO);
+
+    /**
+     * 获取身份认证详情
+     * @param authType 认证类型
+     * @param identityAuthId 认证id
+     * @return 认证记录详情
+     */
+    @GetMapping("/identity-auth/detail")
+    R retrieveIdentityAuthDetail(@RequestParam("authType") Integer authType,
+                                 @RequestParam("identityAuthId") Long identityAuthId);
+
+    /**
+     * 获取身份认证方式
+     * @param communityId
+     * @param identityAuthType
+     * @return 认证方式
+     */
+    @GetMapping("/identity-auth/mode")
+    R getIdentityAuthMode(@RequestParam(value = "communityId") Long communityId,
+                          @RequestParam(value = "identityAuthType") Integer identityAuthType);
+
+    /**
+     * 获取身份认证人脸核验token
+     * @param getIdentityEidTokenDTO
+     * @return token
+     */
+    @PostMapping("/identity-auth/getEidToken")
+    R getEidToken(@RequestBody GetIdentityEidTokenDTO getIdentityEidTokenDTO);
+
+    /**
+     * 一起议获取是否有发布权
+     * @param comActDiscussDTO
+     * @return
+     */
+    @PostMapping("discuss/permissions")
+    R getDiscussPermissions(@RequestBody ComActDiscussDTO comActDiscussDTO);
+
+    /**
+     * 高龄认证统计-分页查询
+     * @param pageElderAuthStatisticDTO 请求参数
+     * @return  高龄认证统计列表
+     */
+    @PostMapping("/elders/auth/statistic/page")
+    R pageAuthStatisticAdmin(@RequestBody PageElderAuthStatisticDTO pageElderAuthStatisticDTO);
+
+    /**
+     * 高龄认证统计-标记
+     * @param signElderAuthStatisticDTO 请求参数
+     * @return  标记结果
+     */
+    @PostMapping("/elders/auth/statistic/sign")
+    R signAuthStatisticAdmin(@RequestBody SignElderAuthStatisticDTO signElderAuthStatisticDTO);
+
+    /**
+     * 高龄认证统计-统计表头数据
+     * @param statisticHeaderDTO 请求参数
+     * @return  统计表头数据
+     */
+    @PostMapping("/elders/auth/header/statistic")
+    R getAuthHeaderStatisticAdmin(@RequestBody ElderAuthStatisticHeaderDTO statisticHeaderDTO);
+
+    /**
+     * 养老认证统计-分页查询
+     * @param pensionAuthStatisticDTO   请求参数
+     * @return  养老认证统列表
+     */
+    @PostMapping("/elders/pension/auth/statistic/page")
+    R pagePensionAuthStatisticAdmin(@RequestBody PagePensionAuthStatisticDTO pensionAuthStatisticDTO);
+
+    /**
+     * 养老认证记标记
+     * @param signElderAuthStatisticDTO 请求参数
+     * @return  标记结果
+     */
+    @PostMapping("/elders/pension/auth/statistic/sign")
+    R signPensionAuthStatisticAdmin(@RequestBody SignElderAuthStatisticDTO signElderAuthStatisticDTO);
+
+    /**
+     * 养老认证表头统计
+     * @param statisticHeaderDTO    请求参数
+     * @return  统计结果
+     */
+    @PostMapping("/elders/pension/auth/header/statistic")
+    R getPensionAuthHeaderStatisticAdmin(@RequestBody ElderAuthStatisticHeaderDTO statisticHeaderDTO);
+
+    /**
      * 分页查询所有数据
      *
      * @param commonPage 查询实体
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java
index 7f01a25..8941552 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java
@@ -848,7 +848,7 @@
      * @return 标签集合
      */
     @PostMapping("listtag/getTag")
-    R listTags(@RequestParam("communityId") Long communityId);
+    R listTags();
 
     /**
      * 添加SysUser信息
@@ -1008,4 +1008,13 @@
      */
     @GetMapping("getUserListByCommunityId")
     R getUserListByCommunityId(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 检查当前用户是否是社区工作人员
+     * @param phone
+     * @param communityId
+     * @return
+     */
+    @GetMapping("checkIsTeam")
+    R checkCurrentUserIsTeam(@RequestParam("phone") String phone, @RequestParam("communityId") Long communityId);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java
index feb3f60..d55983e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java
@@ -1,5 +1,8 @@
 package com.panzhihua.common.utlis;
 
+import cn.hutool.core.util.IdcardUtil;
+import com.panzhihua.common.constants.Constants;
+
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
@@ -117,6 +120,29 @@
         return age - 1;
     }
 
+    /**
+     * 根据身份证号判断年龄段
+     * @param idCard    身份证号
+     * @return  年龄段(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上)
+     */
+    public static int getAgeCategory(String idCard){
+        int nub = -1;
+        int age = 0;
+        try {
+            age = IdcardUtil.getAgeByIdCard(idCard);
+        }catch (Exception e){
+            return -1;
+        }
+        if (age >= Constants.EIGHTY && age < Constants.NINETY) {
+            nub = 1;
+        }else if (age >= Constants.NINETY && age < Constants.ONE_HUNDRED){
+            nub = 2;
+        }else if (age >= Constants.ONE_HUNDRED){
+            nub = 3;
+        }
+        return nub;
+    }
+
     public static int getAgeFromBirthTimes(long birthTimeLong) {
         Date date = new Date(birthTimeLong * 1000l);
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java
index 7570360..d40778e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java
@@ -22,6 +22,7 @@
     public static SimpleDateFormat ymdhm_format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
     public static DateTimeFormatter format_ymd_String = DateTimeFormatter.ofPattern("yyMMdd");
     public static SimpleDateFormat yyyyMM_format = new SimpleDateFormat("yyyy-MM");
+    public static SimpleDateFormat format_yyymmdd = new SimpleDateFormat("yyyyMMdd");
     private static DateTimeFormatter format_ymdhmssss = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
     private static DateTimeFormatter format_ymds = DateTimeFormatter.ofPattern("yyyyMMdd");
 
@@ -758,6 +759,12 @@
         return instance.get(Calendar.MONTH);
     }
 
+    public static int getYear(Date date) {
+        Calendar instance = Calendar.getInstance();
+        instance.setTime(date);
+        return instance.get(Calendar.YEAR);
+    }
+
     public static boolean before(Date start, Date end) {
         Calendar date1 = Calendar.getInstance();
         date1.setTime(start);
@@ -883,6 +890,5 @@
         // Date after = new Date();
         // System.out.println(getFirstDayOfMonthString());
         // System.out.println(getDayOfMonthString());
-
     }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java
index 3830987..4898691 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java
@@ -76,7 +76,7 @@
             stringEntity.setContentEncoding(HttpConstant.UTF8_ENCODE);
             stringEntity.setContentType(HttpConstant.APPLICATION_JSON);
             httpPost.setEntity(stringEntity);
-            log.info("请求{}接口的参数为{}", url, jsonParam);
+//            log.info("请求{}接口的参数为{}", url, jsonParam);
             // 执行发送,获取相应结果
             httpResponse = httpClient.execute(httpPost);
             httpEntity = httpResponse.getEntity();
@@ -99,7 +99,7 @@
         }
         // 请求接口的响应时间
         endTime = System.currentTimeMillis();
-        log.info("请求{}接口的响应报文内容为{},本次请求API接口的响应时间为:{}毫秒", url, result, (endTime - startTime));
+//        log.info("请求{}接口的响应报文内容为{},本次请求API接口的响应时间为:{}毫秒", url, result, (endTime - startTime));
         return result;
 
     }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpUtils.java
index 9460d68..f009376 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpUtils.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpUtils.java
@@ -56,7 +56,7 @@
         BufferedReader in = null;
         try {
             String urlNameString = url + "?" + param;
-            log.info("sendGet - {}", urlNameString);
+//            log.info("sendGet - {}", urlNameString);
             URL realUrl = new URL(urlNameString);
             URLConnection connection = realUrl.openConnection();
             connection.setRequestProperty("accept", "*/*");
@@ -68,7 +68,7 @@
             while ((line = in.readLine()) != null) {
                 result.append(line);
             }
-            log.info("recv - {}", result);
+//            log.info("recv - {}", result);
         } catch (ConnectException e) {
             log.error("调用HttpUtils.sendGet ConnectException, url=" + url + ",param=" + param, e);
         } catch (SocketTimeoutException e) {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxUtil.java
index ed34ba8..863bee0 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxUtil.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxUtil.java
@@ -362,6 +362,32 @@
         }
     }
 
+    /**
+     * 预约提醒订阅消息通知
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     * @param result    预约结果
+     * @param title     预约主题
+     * @param name      预约人
+     * @param time      预约时间
+     */
+    public static void sendSubscribeYYTX(String openId, String accessToken, String result, String title, String name,String time){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(WxSubscribeConstants.YYTX_ID);
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("phrase8",result));//预约结果
+        paras.add(new TemplateParam("thing23",title));//预约主题
+        paras.add(new TemplateParam("name5",name));//预约人
+        paras.add(new TemplateParam("date7",time));//预约时间
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("预约提醒订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
     public static void main(String[] args) {
 
         WxXCXTempSend util = new WxXCXTempSend();
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/CommunityBackstageApplication.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/CommunityBackstageApplication.java
index a1667b8..88e803b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/CommunityBackstageApplication.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/CommunityBackstageApplication.java
@@ -1,6 +1,7 @@
 package com.panzhihua.community_backstage;
 
 import org.springframework.boot.SpringApplication;
+import org.springframework.cache.annotation.EnableCaching;
 import org.springframework.cloud.client.SpringCloudApplication;
 import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
 import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@@ -9,6 +10,7 @@
 
 import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
+@EnableCaching
 @EnableSwagger2
 @SpringCloudApplication
 @EnableCircuitBreaker
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BigScreenStatisticsApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BigScreenStatisticsApi.java
index 7891c82..d2fe215 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BigScreenStatisticsApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BigScreenStatisticsApi.java
@@ -2,6 +2,13 @@
 
 import javax.annotation.Resource;
 
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.HttpConstant;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.utlis.HttpClientUtil;
+import com.panzhihua.common.utlis.HttpUtils;
 import org.springframework.web.bind.annotation.*;
 
 import com.panzhihua.common.controller.BaseController;
@@ -141,4 +148,31 @@
         }
         return userService.getGridsMemberList(id);
     }
+
+    @ApiOperation(value = "民生大屏出入记录接口@lyq")
+    @GetMapping("/event/inAndOut/record")
+    public R inAndOutRecord(@RequestParam("pageNum") Long pageNum,@RequestParam("pageSize") Long pageSize,@RequestParam("areaId") Long areaId) {
+        if (pageNum == null || pageNum == null || areaId == null) {
+            return R.fail("参数错误");
+        }
+        String param = "page=" + pageNum + "&size=" + pageSize + "&areaId=" + areaId;
+        String resultJson = HttpUtils.sendGet(HttpConstant.NEIJIANG_URL ,param);
+        JSONObject result = JSON.parseObject(resultJson);
+        return R.ok(result.getString("data"));
+    }
+
+    @ApiOperation(value = "民生大屏报警记录接口@lyq")
+    @PostMapping("/event/callThePolice/record")
+    public R callThePoliceRecord(@RequestBody CommonPage commonPage) {
+        if (commonPage == null) {
+            return R.fail("参数错误");
+        }
+        String resultJson = HttpClientUtil.sendPostByJson(HttpConstant.CALL_THE_POLICE_URL,JSON.toJSONString(commonPage),0,null,null);
+        JSONObject result = JSON.parseObject(resultJson);
+        return R.ok(result.getString("data"));
+    }
+
+
+
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java
index fc12dd9..40f1a55 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java
@@ -24,6 +24,7 @@
 import com.panzhihua.common.service.user.UserService;
 import com.panzhihua.common.utlis.DateUtils;
 import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.common.utlis.StringUtils;
 import com.panzhihua.community_backstage.config.SFTPConfig;
 import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
 import io.swagger.annotations.Api;
@@ -36,6 +37,7 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
+import java.net.URL;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -161,7 +163,7 @@
             List<ComActReserveMakeRightStatisticsAdminVO> rightStatisticsList = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActReserveMakeRightStatisticsAdminVO.class);
             rightStatisticsList.forEach(rightStatistics -> {
                 ComActReserveMakeRightExcelAdminVO makeRightExcelAdminVO = new ComActReserveMakeRightExcelAdminVO();
-                BeanUtils.copyProperties(rightStatistics,makeRightExcelAdminVO);
+                BeanUtils.copyProperties(rightStatistics, makeRightExcelAdminVO);
                 resultList.add(makeRightExcelAdminVO);
             });
             try {
@@ -244,7 +246,7 @@
             List<ComActReserveMakeListAdminVO> rightStatisticsList = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActReserveMakeListAdminVO.class);
             rightStatisticsList.forEach(rightStatistics -> {
                 ComActReserveMakeDetailedExcelAdminVO makeRightExcelAdminVO = new ComActReserveMakeDetailedExcelAdminVO();
-                BeanUtils.copyProperties(rightStatistics,makeRightExcelAdminVO);
+                BeanUtils.copyProperties(rightStatistics, makeRightExcelAdminVO);
                 resultList.add(makeRightExcelAdminVO);
             });
             try {
@@ -320,7 +322,7 @@
             List<ComActReserveRegisterStatisticsAdminVO> rightStatisticsList = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActReserveRegisterStatisticsAdminVO.class);
             rightStatisticsList.forEach(rightStatistics -> {
                 ComActReserveRegisterExcelAdminVO makeRightExcelAdminVO = new ComActReserveRegisterExcelAdminVO();
-                BeanUtils.copyProperties(rightStatistics,makeRightExcelAdminVO);
+                BeanUtils.copyProperties(rightStatistics, makeRightExcelAdminVO);
                 resultList.add(makeRightExcelAdminVO);
             });
             try {
@@ -407,7 +409,7 @@
             List<ComActReserveMakeHandleListAdminVO> rightStatisticsList = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActReserveMakeHandleListAdminVO.class);
             rightStatisticsList.forEach(rightStatistics -> {
                 ComActReserveMakeHandleExcelAdminVO makeRightExcelAdminVO = new ComActReserveMakeHandleExcelAdminVO();
-                BeanUtils.copyProperties(rightStatistics,makeRightExcelAdminVO);
+                BeanUtils.copyProperties(rightStatistics, makeRightExcelAdminVO);
                 makeRightExcelAdminVO.setStatus(ReserveRecordStatusEnum.getCnDescByName(rightStatistics.getStatus()));
                 resultList.add(makeRightExcelAdminVO);
             });
@@ -485,42 +487,25 @@
                     String firstRowContent = "登记明细";
                     List<String> head0 = new ArrayList<>();
                     head0.add(firstRowContent);
-                    head0.add("姓名");
+                    head0.add("登记人昵称");
                     headList.add(head0);
                     List<String> head1 = new ArrayList<>();
                     head1.add(firstRowContent);
-                    head1.add("提交时间");
+                    head1.add("登记时间");
                     headList.add(head1);
                     subVOList.forEach(sub -> {
-                        List<String> headn = new ArrayList<>();
-                        headn.add(firstRowContent);
-                        headn.add(sub.getContent());
-                        headList.add(headn);
-                    });
-                    List<List<Object>> datalist = new ArrayList<>();
-                    List<ComActQuestnaireAnswerContentVO> answerContentVOList = questnaireAnswersDTOS.getAnswers();
-                    if(answerContentVOList!=null && answerContentVOList.size()>0) {
-                        List<Object> userData = new ArrayList<>();
-                        List<ComActQuestnaireAnswerContentVO> usersAnswers = questnaireAnswersDTOS.getAnswers();
-                        //查询用户回答的所有答案,并新增到答案列表中
-                        Long reserveRecordId = null;
-                        for (ComActQuestnaireAnswerContentVO userAnswers:usersAnswers) {
-                            if(reserveRecordId == null){
-                                reserveRecordId = userAnswers.getReserveRecordId();
-                                userData.add(userAnswers.getNickName());
-                                userData.add(DateUtils.format(userAnswers.getTime(),DateUtils.ymdhms_format));
+                        if (sub.getType() != 5) {
+                            List<String> headn = new ArrayList<>();
+                            headn.add(firstRowContent);
+                            if(sub.getType() == 11){
+                                headn.add(sub.getContent().substring(0, sub.getContent().indexOf("(")));
+                            }else{
+                                headn.add(sub.getContent());
                             }
-                            if(!reserveRecordId.equals(userAnswers.getReserveRecordId())){
-                                datalist.add(userData);
-                                userData = new ArrayList<>();
-                                reserveRecordId = userAnswers.getReserveRecordId();
-                                userData.add(userAnswers.getNickName());
-                                userData.add(DateUtils.format(userAnswers.getTime(),DateUtils.ymdhms_format));
-                            }
-                            userData.add(userAnswers.getAnswerContent());
+                            headList.add(headn);
                         }
-                        datalist.add(userData);
-                    }
+                    });
+                    List<List<Object>> datalist = dataList(questnaireAnswersDTOS.getAnswers());
 
                     WriteCellStyle headWriteCellStyle = new WriteCellStyle();
                     WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
@@ -563,22 +548,114 @@
         }
     }
 
-    @ApiOperation(value = "查询题目列表",response = ComActReserveSubListVO.class)
+    @ApiOperation(value = "查询题目列表", response = ComActReserveSubListVO.class)
     @GetMapping("/subject/list")
     public R subjectList(@RequestParam("reserveId") Long reserveId) {
         return communityService.subjectListAdmin(reserveId);
     }
 
-    @ApiOperation(value = "分页查询登记明细列表",response = ComActReserveRegisterDetailedVO.class)
+    @ApiOperation(value = "分页查询登记明细列表", response = ComActReserveRegisterDetailedVO.class)
     @PostMapping("/register/detailed/list")
     public R registerDetailedList(@RequestBody PageReserveRegisterDetailedAdminDTO detailedAdminDTO) {
         return communityService.registerDetailedListAdmin(detailedAdminDTO);
     }
 
-    @ApiOperation(value = "查询登记明细详情",response = ComActReserveRegisterDetailedVO.class)
+    @ApiOperation(value = "查询登记明细详情", response = ComActReserveRegisterDetailedVO.class)
     @PostMapping("/register/detailed/detail")
     public R registerDetailedDetail(@RequestParam("reserveRecordId") Long reserveRecordId) {
         return communityService.registerDetailedDetailAdmin(reserveRecordId);
     }
 
+    /**
+     * 数据转换--登记明细用户填写答案导出数据格式转换
+     *
+     * @param answerContentVOList 用户答题记录
+     * @return 用户填写答案数据
+     */
+    private List<List<Object>> dataList(List<ComActQuestnaireAnswerContentVO> answerContentVOList) {
+        //结果数据集合
+        List<List<Object>> resultList = new ArrayList<>();
+        //构建单个用户数据
+        List<Object> userData = new ArrayList<>();
+        //遍历答案列表
+        Long reserveRecordId = 0L;
+        Long reserveSubId = 0L;
+        StringBuffer sb = new StringBuffer();
+        if (answerContentVOList != null && answerContentVOList.size() > 0) {
+            for (ComActQuestnaireAnswerContentVO userAnswers : answerContentVOList) {
+                //判断是文字描述直接跳过
+                if (userAnswers.getOptionType().equals(5)) {
+                    continue;
+                }
+                //判断reserveRecordId为空则为第一条记录,默认加上昵称和灯谜是
+                if (reserveRecordId.equals(0L)) {
+                    reserveRecordId = userAnswers.getReserveRecordId();
+                    userData.add(userAnswers.getNickName());
+                    userData.add(DateUtils.format(userAnswers.getTime(), DateUtils.ymdhms_format));
+                }
+                //根据reserveRecordId判断是否是第二条填报记录
+                if (!reserveRecordId.equals(userAnswers.getReserveRecordId())) {
+                    reserveSubId = 0L;
+
+                    resultList.add(userData);
+                    userData = new ArrayList<>();
+                    reserveRecordId = userAnswers.getReserveRecordId();
+                    userData.add(userAnswers.getNickName());
+                    userData.add(DateUtils.format(userAnswers.getTime(), DateUtils.ymdhms_format));
+                    if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
+                        userData.add(userAnswers.getAnswerContent());
+                    }else{
+                        userData.add(" ");
+                    }
+                }else{
+                    if(reserveSubId.equals(0L)){
+                        reserveSubId = userAnswers.getReserveSubId();
+                    }
+
+                    if(!reserveSubId.equals(userAnswers.getReserveSubId())){
+                        reserveSubId = userAnswers.getReserveSubId();
+
+                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
+                        if(userAnswers.getOptionType().equals(11)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                userData.add(new URL(userAnswers.getAnswerContent()));
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                    }else{
+                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
+                        if(userAnswers.getOptionType().equals(11)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                userData.add(new URL(userAnswers.getAnswerContent()));
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                    }
+                }
+            }
+//            String answer = sb.toString();
+//            if(StringUtils.isNotEmpty(answer)){
+//                userData.add(answer.substring(0, answer.length() - 1));
+//            }
+            resultList.add(userData);
+        }
+        return resultList;
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyAlarmApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyAlarmApi.java
index 4fd0c93..5ab7c91 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyAlarmApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyAlarmApi.java
@@ -39,9 +39,9 @@
      * @return 所有数据
      */
     @ApiOperation(value = "分页查询",response = ComPropertyAlarmVO.class)
-    @PostMapping("queryAll")
+    @PostMapping("queryAll/noToken")
     public R selectAll(@RequestBody CommonPage commonPage) {
-        commonPage.setParamId(this.getCommunityId());
+        commonPage.setParamId(2L);
         return propertyService.comPropertyAlarmSelectAll(commonPage);
     }
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java
index efd8d72..09b5ed0 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java
@@ -14,6 +14,7 @@
 import com.panzhihua.common.utlis.*;
 import org.apache.commons.io.FileUtils;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -113,6 +114,21 @@
     }
 
     /**
+     * 编辑巡查记录 editPatrolRecord  编辑巡查记录
+     * @param    comSwPatrolRecordEditDTO   编辑巡查记录参数
+     * @return    R  编辑结果
+     * @author txb
+     * @date 2021/9/08 17:03
+     */
+    @PostMapping("/editPatrolRecord")
+    @ApiOperation(value = "编辑巡查记录")
+    public R editPatrolRecord(@RequestBody ComSwPatrolRecordEditDTO comSwPatrolRecordEditDTO) {
+        Long userId = this.getLoginUserInfo().getUserId();
+        comSwPatrolRecordEditDTO.setUpdateBy(userId);
+        return communityService.editPatrolRecord(comSwPatrolRecordEditDTO);
+    }
+
+    /**
      * 根据巡查记录id查询详情
      *
      * @param patrolRecordId
@@ -138,6 +154,21 @@
         Long communityId = this.getCommunityId();
         comSwPatrolRecordPageDTO.setCommunityId(communityId);
         return communityService.pageSafetyWorkRecord(comSwPatrolRecordPageDTO);
+    }
+
+    /**
+     * 编辑安全工作记录 editSafetyWork  编辑安全工作记录
+     * @param    comSwSafetyWorkEditDTO   编辑安全工作记录参数
+     * @return    R  编辑结果
+     * @author txb
+     * @date 2021/9/08 17:03
+     */
+    @PostMapping("/editSafetyWorkRecord")
+    @ApiOperation(value = "编辑安全工作记录")
+    public R editSafetyWork(@RequestBody ComSwSafetyWorkEditDTO comSwSafetyWorkEditDTO) {
+        Long userId = this.getLoginUserInfo().getUserId();
+        comSwSafetyWorkEditDTO.setUpdateBy(userId);
+        return communityService.editSafetyWork(comSwSafetyWorkEditDTO);
     }
 
     /**
@@ -181,6 +212,21 @@
         Long communityId = this.getCommunityId();
         comSwPatrolRecordPageDTO.setCommunityId(communityId);
         return communityService.pageDangerReport(comSwPatrolRecordPageDTO);
+    }
+
+    /**
+     * 编辑隐患报告 editDangerReport  编辑隐患报告
+     * @param    comSwDangerReportEditDTO   编辑隐患报告参数
+     * @return    R  编辑结果
+     * @author txb
+     * @date 2021/9/08 17:03
+     */
+    @PostMapping("/editDangerReport")
+    @ApiOperation(value = "编辑隐患报告")
+    public R editDangerReport(@RequestBody ComSwDangerReportEditDTO comSwDangerReportEditDTO) {
+        Long userId = this.getLoginUserInfo().getUserId();
+        comSwDangerReportEditDTO.setUpdateBy(userId);
+        return communityService.editDangerReport(comSwDangerReportEditDTO);
     }
 
     /**
@@ -507,8 +553,8 @@
                     if(!file0.isDirectory()&&!file0.exists()){
                         file0.mkdirs();
                     }
-                    sftp.download("/mnt/data/web/", "安全工作记录.ftl", "d:/safetyWork/file/安全工作记录.ftl");
-                    sftp.download("/mnt/data/web/", "blank.jpg", "d:/safetyWork/file/blank.jpg");
+                    sftp.download("/mnt/data/web/excel/", "安全工作记录.ftl", "d:/safetyWork/file/安全工作记录.ftl");
+                    sftp.download("/mnt/data/web/excel/", "blank.jpg", "d:/safetyWork/file/blank.jpg");
                     try {
                         // 日期
                         if (comSwSafetyWorkRecordVO.getPatrolTime() != null) {
@@ -750,6 +796,7 @@
             inputStream.close();
             FileUtils.deleteDirectory(new File(property+File.separator+"word"+File.separator));
             FileUtils.deleteDirectory(new File(zipFile));
+            FileUtils.deleteDirectory(new File("d:/safetyWork/file/"));
         } catch (FileNotFoundException e) {
             e.printStackTrace();
         } catch (SftpException e) {
@@ -792,8 +839,8 @@
                     if(!file0.isDirectory()&&!file0.exists()){
                         file0.mkdirs();
                     }
-                    sftp.download("/mnt/data/web/", "巡查记录.ftl", "d:/patrolRecord/file/巡查记录.ftl");
-                    sftp.download("/mnt/data/web/", "blank.jpg", "d:/patrolRecord/file/blank.jpg");
+                    sftp.download("/mnt/data/web/excel/", "巡查记录.ftl", "d:/patrolRecord/file/巡查记录.ftl");
+                    sftp.download("/mnt/data/web/excel/", "blank.jpg", "d:/patrolRecord/file/blank.jpg");
                     try {
                         // 日期
                         if (comSwPatrolRecordVO.getPatrolTime() != null) {
@@ -1046,6 +1093,7 @@
             inputStream.close();
             FileUtils.deleteDirectory(new File(property+File.separator+"word"+File.separator));
             FileUtils.deleteDirectory(new File(zipFile));
+            FileUtils.deleteDirectory(new File("d:/patrolRecord/file/"));
         } catch (FileNotFoundException e) {
             e.printStackTrace();
         } catch (SftpException e) {
@@ -1088,8 +1136,8 @@
                 if(!file0.isDirectory()&&!file0.exists()){
                     file0.mkdirs();
                 }
-                sftp.download("/mnt/data/web/", "隐患报告.ftl", "d:/dangerReport/file/隐患报告.ftl");
-                sftp.download("/mnt/data/web/", "blank.jpg", "d:/dangerReport/file/blank.jpg");
+                sftp.download("/mnt/data/web/excel/", "隐患报告.ftl", "d:/dangerReport/file/隐患报告.ftl");
+                sftp.download("/mnt/data/web/excel/", "blank.jpg", "d:/dangerReport/file/blank.jpg");
                 try {
                     // 日期
                     if (StringUtils.isNotEmpty(comSwDangerReportVO.getCheckTime())) {
@@ -1568,6 +1616,7 @@
             inputStream.close();
             FileUtils.deleteDirectory(new File(property+File.separator+"word"+File.separator));
             FileUtils.deleteDirectory(new File(zipFile));
+            FileUtils.deleteDirectory(new File("d:/dangerReport/file/"));
         } catch (FileNotFoundException e) {
             e.printStackTrace();
         } catch (SftpException e) {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommonDataApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommonDataApi.java
index 3af2acf..1258f24 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommonDataApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommonDataApi.java
@@ -626,39 +626,6 @@
         }
     }
 
-    @ApiOperation(value = "特殊群体/分页查询标签列表", response = ComMngTagVO.class)
-    @PostMapping("/special/tags/page")
-    public R specialInputUserTags(@RequestBody PageInputUserDTO comMngUserTagDTO) {
-        Long communityId = this.getCommunityId();
-        comMngUserTagDTO.setCommunityId(communityId);
-        return userService.specialInputUserTags(comMngUserTagDTO);
-    }
-
-    /**
-     * 新增或修改特殊群体标签
-     *
-     * @param comMngTagVO
-     * @return
-     */
-    @ApiOperation(value = "特殊群体/新增或修改标签")
-    @PostMapping("/special/tags/save")
-    R saveSpecialInputUserTags(@RequestBody ComMngTagVO comMngTagVO) {
-        Long communityId = this.getLoginUserInfo().getCommunityId();
-        comMngTagVO.setCommunityId(communityId);
-        return userService.saveSpecialInputUserTags(comMngTagVO);
-    }
-
-    /**
-     * 删除特殊群体标签
-     *
-     * @param id
-     * @return
-     */
-    @ApiOperation(value = "特殊群体/删除标签")
-    @DeleteMapping("/special/tags/delete")
-    R deleteSpecialInputUserTags(@RequestParam(value = "id") Long id) {
-        return userService.deleteSpecialInputUserTags(id);
-    }
 
     @ApiOperation(value = "分页查询单位管理列表", response = ComMngRealCompanyVO.class)
     @PostMapping("/company/page")
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityActivityApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityActivityApi.java
index c7a88bd..7dea20a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityActivityApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityActivityApi.java
@@ -157,7 +157,7 @@
         if (R.isOk(r)) {
             ActivitySignVO activitySignVO = new ActivitySignVO();
             activitySignVO.setActivityId(id);
-            R r3 = this.detailActivity(id);
+            R r3 = this.detailActivity(id,null,null);
             if (R.isOk(r3)) {
                 Object data = r3.getData();
                 ComActActivityVO comActActivityVO =
@@ -208,9 +208,9 @@
 
     @ApiOperation(value = "活动详情", response = ComActActivityVO.class)
     @GetMapping("detailactivity")
-    public R detailActivity(@RequestParam("id") Long id) {
+    public R detailActivity(@RequestParam("id") Long id,@RequestParam(value = "pageNum", required = false) Long pageNum,@RequestParam(value = "pageSize", required = false) Long pageSize) {
         Long userId = this.getUserId();
-        return communityService.detailActivity(id, userId);
+        return communityService.detailActivity(id, userId,pageNum,pageSize);
     }
 
     @ApiOperation(value = "查询活动报名名单集合")
@@ -409,7 +409,7 @@
     }
 
     @ApiOperation(value = "excel导出活动签到统计")
-    @GetMapping("statistics/export")
+    @PostMapping("statistics/export")
     public R activityStatisticsExport(@RequestBody ComActActRegistVO comActActRegistVO){
         String name = "活动签到统计导出数据.xlsx";
         String ftpUrl = "/mnt/data/web/excel/";
@@ -466,7 +466,7 @@
     }
 
     @ApiOperation(value = "社区活动签到二维码下载")
-    @GetMapping("qrCode/export")
+    @PostMapping("qrCode/export")
     public R activityRegistQRCodeExport(@RequestParam("activityId") Long activityId){
         try {
                 SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
@@ -486,7 +486,7 @@
                     if(!file0.isDirectory()&&!file0.exists()){
                         file0.mkdirs();
                     }
-                    sftp.download("/mnt/data/web/", "社区活动二维码.ftl", "d:/comActivity/file/社区活动二维码.ftl");
+                    sftp.download("/mnt/data/web/excel/", "社区活动二维码.ftl", "d:/comActivity/file/社区活动二维码.ftl");
                     try {
                         String text = String.valueOf(activityId);
                         String destPath = "d:/comActivity/file/";
@@ -544,11 +544,23 @@
         return communityService.getPictureList(userId);
     }
 
+    /**
+     * 获取系统预置图库  getSysPictureList
+     * @param type 图片类型
+     * @return    R   系统图库集
+     * @author txb
+     * @date 2021/8/27 13:33
+     */
+    @ApiOperation(value = "获取社区活动系统预置图库", response = ComActActPictureVO.class)
+    @GetMapping("sysPicture/getList")
+    public R getSysPictureList(@RequestParam(value = "type") Integer type){
+        return communityService.getSysPictureList(type);
+    }
+
     @ApiOperation(value = "查询当前社区标签列表")
     @GetMapping("userTags/getList")
     public R getUserTagsList() {
-        Long communityId = this.getLoginUserInfo().getCommunityId();
-        return userService.listTags(communityId);
+        return userService.listTags();
     }
 
     @ApiOperation(value = "新增社区动态")
@@ -733,7 +745,7 @@
         Long communityId = loginUserInfo.getCommunityId();
         Long userId = loginUserInfo.getUserId();
         comActMicroWishVO.setCommunityId(communityId);
-        comActMicroWishVO.setBackUserId(userId);
+//        comActMicroWishVO.setBackUserId(userId);
         comActMicroWishVO.setIsPageMyWish(null);
         return communityService.pageMicroWish(comActMicroWishVO);
     }
@@ -757,6 +769,7 @@
         if (ObjectUtils.isEmpty(type) || type > 5 || type < 1) {
             return R.fail("操作类型不对");
         }
+        comActMicroWishVO.setUserId(userId);
         R r = communityService.putlMicroWish(comActMicroWishVO);
         if (R.isOk(r)) {
             if (R.isOk(r)) {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityConvenientApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityConvenientApi.java
index eae3701..9e10826 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityConvenientApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityConvenientApi.java
@@ -27,6 +27,7 @@
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.*;
 import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.DateUtils;
 import com.panzhihua.common.utlis.SFTPUtil;
 import com.panzhihua.common.validated.AddGroup;
 import com.panzhihua.community_backstage.config.MinioUtil;
@@ -183,9 +184,11 @@
     @PostMapping(value = "/minio/upload/file", consumes = "multipart/*", headers = "content-type=multipart/form-date")
     public R minipuploadImage(@RequestParam MultipartFile file, HttpServletRequest request) {
         try {
+            log.info("开始上传文件" + DateUtils.getCurrentDateStr_MS());
             String extension = FilenameUtils.getExtension(file.getOriginalFilename());
             String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension;
             String imageUrl = minioUtil.upload(file, name);
+            log.info("上传文件结束" + DateUtils.getCurrentDateStr_MS());
             return R.ok(imageUrl);
         } catch (Exception e) {
             log.error("上传照片失败【{}】", e.getMessage());
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java
index a67873d..beb922b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java
@@ -11,6 +11,8 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.panzhihua.community_backstage.config.MinioUtil;
+import org.apache.commons.io.FilenameUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.util.ObjectUtils;
 import org.springframework.validation.annotation.Validated;
@@ -89,6 +91,9 @@
     private int port;
     @Value("${ftp.url}")
     private String url;
+
+    @Resource
+    private MinioUtil minioUtil;
 
     @ApiOperation(value = "社区所有启用的党组织列表", response = PartyOrganizationVO.class)
     @GetMapping("listpartyorganization")
@@ -211,6 +216,20 @@
 
     }
 
+    @ApiOperation(value = "新上传照片接口")
+    @PostMapping(value = "/uploadimages", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImages(@RequestParam MultipartFile file, HttpServletRequest request) {
+        try {
+            String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+            String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension;
+            String imageUrl = minioUtil.upload(file, name);
+            return R.ok(imageUrl);
+        } catch (Exception e) {
+            log.error("上传照片失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
     @ApiOperation(value = "批量新增党员导入excel")
     @PostMapping(value = "downloadtemplate", consumes = "multipart/*", headers = "content-type=multipart/form-date")
     public R downloadTemplate(@RequestParam MultipartFile file, HttpServletRequest request) {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityQuestnaireApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityQuestnaireApi.java
index 154e0b8..e2b0220 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityQuestnaireApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityQuestnaireApi.java
@@ -3,11 +3,14 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
+import java.net.URL;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
 import javax.annotation.Resource;
 
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import com.alibaba.excel.EasyExcel;
@@ -172,7 +175,7 @@
                     String firstRowContent = "调查结果";
                     List<String> head0 = new ArrayList<>();
                     head0.add(firstRowContent);
-                    head0.add("姓名");
+                    head0.add("调查人昵称");
                     headList.add(head0);
                     List<String> head1 = new ArrayList<>();
                     head1.add(firstRowContent);
@@ -181,77 +184,14 @@
                     subVOList.forEach(sub -> {
                         List<String> headn = new ArrayList<>();
                         headn.add(firstRowContent);
-                        headn.add(sub.getContent());
+                        if(sub.getType() == 11){
+                            headn.add(sub.getContent().substring(0, sub.getContent().indexOf("(")));
+                        }else{
+                            headn.add(sub.getContent());
+                        }
                         headList.add(headn);
                     });
-                    List<List<Object>> datalist = new ArrayList<>();
-
-                    List<ComActQuestnaireAnswerContentVO> answerContentVOList = questnaireAnswersDTOS.getAnswers();
-                    if (answerContentVOList != null && answerContentVOList.size() > 0) {
-                        Map<LoginUserInfoVO, LinkedHashMap<Long, List<ComActQuestnaireAnswerContentVO>>> answersMap =
-                            new HashMap<>();
-
-                        List<ComActQuestnaireAnswerContentVO> usersAnswers = questnaireAnswersDTOS.getAnswers();
-                        usersAnswers.forEach(userAnswers -> {
-                            R<LoginUserInfoVO> loginUserInfoVOR =
-                                userService.getUserInfoByUserId(userAnswers.getUserId().toString());
-                            if (R.isOk(loginUserInfoVOR)) {
-                                LoginUserInfoVO loginUserInfoVO = loginUserInfoVOR.getData();
-                                LinkedHashMap<Long, List<ComActQuestnaireAnswerContentVO>> theUserList =
-                                    answersMap.get(loginUserInfoVO);
-                                if (theUserList == null) {
-                                    theUserList = new LinkedHashMap<>();
-                                    answersMap.put(loginUserInfoVO, theUserList);
-                                }
-                                /**
-                                 * 按题分类题目答案
-                                 */
-                                Long subId = userAnswers.getSubId();
-                                List<ComActQuestnaireAnswerContentVO> answerContentVOList1 = theUserList.get(subId);
-                                if (answerContentVOList1 == null) {
-                                    answerContentVOList1 = new ArrayList<>();
-                                    theUserList.put(subId, answerContentVOList1);
-                                }
-                                answerContentVOList1.add(userAnswers);
-                            }
-
-                        });
-                        /**
-                         * 构造导出数据
-                         */
-                        answersMap.forEach((user, answers) -> {
-                            List<Object> userData = new ArrayList<>();
-                            userData.add(user.getName());
-                            // 获取提交时间
-                            Set<Long> keySet = answers.keySet();
-                            String dateStr = "";
-                            if (keySet != null && keySet.size() > 0) {
-                                try {
-                                    ComActQuestnaireAnswerContentVO firstvo = answers.get(keySet.toArray()[0]).get(0);
-                                    if (firstvo != null) {
-                                        Date time = firstvo.getCreateAt();
-                                        if (time != null) {
-                                            String sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(time);
-                                            dateStr = sd;
-                                        }
-                                    }
-                                } catch (Exception e) {
-                                    dateStr = "";
-                                }
-                            }
-                            userData.add(dateStr);
-                            answers.forEach((id, answer) -> {
-                                StringBuilder usersAnswerContent = new StringBuilder();
-                                answer.forEach(ans -> {
-                                    String context = (ans.getChoice() != null ? (ans.getChoice() + ".") : "")
-                                        + ans.getAnswerContent();
-                                    usersAnswerContent.append(context + "\n");
-                                });
-                                userData.add(usersAnswerContent.toString());
-                            });
-                            datalist.add(userData);
-                        });
-                    }
+                    List<List<Object>> datalist = dataList(questnaireAnswersDTOS.getAnswers());
 
                     WriteCellStyle headWriteCellStyle = new WriteCellStyle();
                     WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
@@ -369,4 +309,90 @@
         return communityService.statisticsSummaryHeader(questId, loginUserInfo.getCommunityId());
     }
 
+    /**
+     * 数据转换
+     * @param answerContentVOList   用户问答列表数据
+     * @return  调查问卷需要导出数据
+     */
+    private List<List<Object>> dataList(List<ComActQuestnaireAnswerContentVO> answerContentVOList) {
+        //结果数据集合
+        List<List<Object>> resultList = new ArrayList<>();
+        //构建单个用户数据
+        List<Object> userData = new ArrayList<>();
+        //遍历答案列表
+        Long reserveRecordId = 0L;
+        Long reserveSubId = 0L;
+        StringBuffer sb = new StringBuffer();
+        if (answerContentVOList != null && answerContentVOList.size() > 0) {
+            for (ComActQuestnaireAnswerContentVO userAnswers : answerContentVOList) {
+                //判断是文字描述直接跳过
+                if (userAnswers.getOptionType().equals(5)) {
+                    continue;
+                }
+                //判断reserveRecordId为空则为第一条记录,默认加上昵称和灯谜是
+                if (reserveRecordId.equals(0L)) {
+                    reserveRecordId = userAnswers.getReserveRecordId();
+                    userData.add(userAnswers.getNickName());
+                    userData.add(DateUtils.format(userAnswers.getTime(), DateUtils.ymdhms_format));
+                }
+                //根据reserveRecordId判断是否是第二条填报记录
+                if (!reserveRecordId.equals(userAnswers.getReserveRecordId())) {
+                    reserveSubId = 0L;
+
+                    userData = new ArrayList<>();
+                    reserveRecordId = userAnswers.getReserveRecordId();
+                    userData.add(userAnswers.getNickName());
+                    userData.add(DateUtils.format(userAnswers.getTime(), DateUtils.ymdhms_format));
+                    if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
+                        userData.add(userAnswers.getAnswerContent());
+                    }else{
+                        userData.add(" ");
+                    }
+                }else{
+                    if(reserveSubId.equals(0L)){
+                        reserveSubId = userAnswers.getReserveSubId();
+                    }
+
+                    if(!reserveSubId.equals(userAnswers.getReserveSubId())){
+                        reserveSubId = userAnswers.getReserveSubId();
+
+                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
+                        if(userAnswers.getOptionType().equals(11)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                userData.add(new URL(userAnswers.getAnswerContent()));
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                    }else{
+                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
+                        if(userAnswers.getOptionType().equals(11)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                userData.add(new URL(userAnswers.getAnswerContent()));
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                    }
+                }
+            }
+            resultList.add(userData);
+        }
+        return resultList;
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DiscussApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DiscussApi.java
index 37e6f7c..322a8fd 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DiscussApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DiscussApi.java
@@ -1,10 +1,11 @@
 package com.panzhihua.community_backstage.api;
 
-import java.util.List;
-
 import javax.annotation.Resource;
 
+import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussDetailDTO;
+import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussPublishResultDTO;
 import org.springframework.util.ObjectUtils;
+import org.springframework.util.StringUtils;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -23,54 +24,78 @@
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
- * @description: 一起议
+ * @description: 议事投票
  * @author: huang.hongfa weixin hhf9596 qq 959656820
  * @create: 2021-01-22 15:30
  **/
 @Slf4j
-@Api(tags = {"一起议"})
+@Api(tags = {"议事投票"})
 @RestController
 @RequestMapping("/")
 public class DiscussApi extends BaseController {
     @Resource
     private CommunityService communityService;
 
-    @ApiOperation(value = "一起议-新增")
+    @ApiOperation(value = "议事投票-新增-")
     @PostMapping("discuss")
     public R addDiscuss(@RequestBody @Validated(AddGroup.class) ComActDiscussDTO comActDiscussDTO) {
-        Integer type = comActDiscussDTO.getType();
-        String voteTitle = comActDiscussDTO.getVoteTitle();
-        List<ComActDiscussOptionDTO> discussOptions = comActDiscussDTO.getDiscussOptions();
-        if (type.equals(2)) {
-            if (ObjectUtils.isEmpty(voteTitle)) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        comActDiscussDTO.setUserId(loginUserInfo.getUserId());
+        comActDiscussDTO.setCommunityId(loginUserInfo.getCommunityId());
+        if (comActDiscussDTO.getType().equals(ComActDiscussDTO.type.tp)) {
+            if (ObjectUtils.isEmpty(comActDiscussDTO.getVoteTitle())) {
                 return R.fail("投票标题不能为空");
             }
-            if (ObjectUtils.isEmpty(discussOptions)) {
+            if (ObjectUtils.isEmpty(comActDiscussDTO.getDiscussOptions())) {
                 return R.fail("选项不能为空");
             }
         }
-        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
-        Long userId = loginUserInfo.getUserId();
-        Long communityId = loginUserInfo.getCommunityId();
-        comActDiscussDTO.setUserId(userId);
-        comActDiscussDTO.setCommunityId(communityId);
         return communityService.addDiscuss(comActDiscussDTO);
     }
 
-    @ApiOperation(value = "一起议-详情", response = ComActDiscussVO.class)
-    @GetMapping("discuss")
-    public R detailDiscuss(@RequestParam("id") Long id) {
-        return communityService.detailDiscuss(id);
+    @ApiOperation(value = "议事投票-编辑-")
+    @PostMapping("editDiscuss")
+    public R editDiscuss(@RequestBody @Validated(AddGroup.class) ComActDiscussDTO comActDiscussDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        comActDiscussDTO.setUserId(loginUserInfo.getUserId());
+        comActDiscussDTO.setCommunityId(loginUserInfo.getCommunityId());
+        if (comActDiscussDTO.getType().equals(ComActDiscussDTO.type.tp)) {
+            if (ObjectUtils.isEmpty(comActDiscussDTO.getVoteTitle())) {
+                return R.fail("投票标题不能为空");
+            }
+            if (ObjectUtils.isEmpty(comActDiscussDTO.getDiscussOptions())) {
+                return R.fail("选项不能为空");
+            }
+        }
+        return communityService.editDiscuss(comActDiscussDTO);
     }
 
-    @ApiOperation(value = "一起议-删除")
+    @ApiOperation(value = "议事投票-详情-", response = ComActDiscussVO.class)
+    @PostMapping("discussDetail")
+    public R detailDiscuss(@RequestBody ComActDiscussDetailDTO discussDetailDTO) {
+        return communityService.detailDiscuss(discussDetailDTO);
+    }
+
+    @ApiOperation(value = "议事投票-分页查询评论下回复列表-", response = ComActDiscussCommentVO.class)
+    @PostMapping("discuss/commment/reply")
+    public R discussCommentReplyAdmin(@RequestBody ComActDiscussDetailDTO discussDetailDTO) {
+        return communityService.discussCommentReplyAdmin(discussDetailDTO);
+    }
+
+    @ApiOperation(value = "议事投票-删除-")
     @DeleteMapping("discuss")
     public R deleteDiscuss(@RequestParam("id") Long id) {
         return communityService.deleteDiscuss(id);
     }
 
-    @ApiOperation(value = "一起议-回复")
-    @PostMapping("discusscomment")
+    @ApiOperation(value = "议事投票-回复-")
+    @PostMapping("addDiscussComment")
     public R addDiscussComment(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO) {
         String comment = comActDiscussCommentDTO.getComment();
         if (ObjectUtils.isEmpty(comment)) {
@@ -78,33 +103,39 @@
         }
         Long discussId = comActDiscussCommentDTO.getDiscussId();
         if (null == discussId || 0 == discussId) {
-            return R.fail("一起议主键不能为空");
+            return R.fail("议事投票主键不能为空");
         }
         comActDiscussCommentDTO.setUserId(this.getUserId());
         return communityService.addDiscussComment(comActDiscussCommentDTO);
 
     }
 
-    @ApiOperation(value = "一起议-分页查询", response = ComActDiscussVO.class)
+    @ApiOperation(value = "议事投票-分页查询-", response = ComActDiscussVO.class)
     @PostMapping("pagediscuss")
     public R pageDiscuss(@RequestBody PageComActDiscussDTO pageComActDiscussDTO) {
         pageComActDiscussDTO.setCommunityId(this.getCommunityId());
-        return communityService.pageDiscuss(pageComActDiscussDTO);
+        return communityService.pageDiscussAdmin(pageComActDiscussDTO);
     }
 
-    @ApiOperation(value = "一起议-评论-查看", response = ComActDiscussCommentVO.class)
+    @ApiOperation(value = "议事投票-评论详情", response = ComActDiscussCommentVO.class)
     @GetMapping("discusscomment")
     public R detailDiscussComment(@RequestParam("id") Long id) {
         return communityService.detailDiscussComment(id);
     }
 
-    @ApiOperation(value = "一起议-评论-置顶")
+    @ApiOperation(value = "议事投票-评论详情-改版后", response = ComActDiscussCommentVO.class)
+    @PostMapping("discusscomment")
+    public R detailDiscussCommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
+        return communityService.detailDiscussCommentAdmin(pageComActDiscussCommentDTO);
+    }
+
+    @ApiOperation(value = "议事投票-评论-置顶-")
     @GetMapping("discusscommenttop")
     public R putDiscussCommentTop(@RequestParam("id") Long id) {
         return communityService.putDiscussCommentTop(id);
     }
 
-    @ApiOperation(value = "一起议-评论-回复")
+    @ApiOperation(value = "议事投票-评论-回复-")
     @PostMapping("discusscommentback")
     public R addDiscussCommentBack(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO) {
         String comment = comActDiscussCommentDTO.getComment();
@@ -119,13 +150,49 @@
         return communityService.addDiscussCommentBack(comActDiscussCommentDTO);
     }
 
-    @ApiOperation(value = "一起议-评论-分页查询", response = ComActDiscussCommentVO.class)
+    @ApiOperation(value = "议事投票-评论列表分页查询-", response = ComActDiscussCommentVO.class)
     @PostMapping("pagediscusscomment")
     public R pageDiscussComment(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
         Long id = pageComActDiscussCommentDTO.getId();
         if (null == id || 0 == id) {
-            return R.fail("一起议主键不能为空");
+            return R.fail("议事投票主键不能为空");
         }
-        return communityService.pageDiscussComment(pageComActDiscussCommentDTO);
+        return communityService.pageDiscussCommentAdmin(pageComActDiscussCommentDTO);
+    }
+
+    @ApiOperation(value = "议事投票-公布结果/修改公布结果-")
+    @PostMapping("publishResult")
+    public R publishResult(@RequestBody ComActDiscussPublishResultDTO publishResultDTO) {
+        String result = publishResultDTO.getResult();
+        if (ObjectUtils.isEmpty(result)) {
+            return R.fail("公布的结果不能为空");
+        }
+        Long id = publishResultDTO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("议事投票id不能为空");
+        }
+        publishResultDTO.setUserId(this.getUserId());
+        return communityService.publishResultAdmin(publishResultDTO);
+    }
+
+    @ApiOperation(value = "议事投票-评论/回复删除-")
+    @DeleteMapping("discuss/comment/del")
+    public R deleteDiscussCommentAdmin(@RequestParam("id") Long id) {
+        return communityService.deleteDiscussCommentAdmin(id);
+    }
+
+    @ApiOperation(value = "查询社区可发布议事投票权限配置")
+    @GetMapping("discuss/jurisdiction/get")
+    public R discussJurisdictionGet() {
+        return communityService.discussJurisdictionGet(this.getCommunityId(),this.getUserId());
+    }
+
+    @PutMapping("/discuss/jurisdiction/set/{value}")
+    @ApiOperation(value = "设置当前社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员)")
+    public R discussJurisdictionSet(@PathVariable("value") String value) {
+        if (StringUtils.isEmpty(value)) {
+            return R.fail("参数错误");
+        }
+        return communityService.discussJurisdictionSet(this.getCommunityId(), value);
     }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java
index fef9d54..918307d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java
@@ -2,18 +2,37 @@
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 
+import com.alibaba.fastjson.JSON;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.enums.*;
+import com.panzhihua.common.listen.ComElderAuthRecordImportExcelListen;
+import com.panzhihua.common.listen.ComMngPopulationDrugExcelListen;
+import com.panzhihua.common.listen.ComPensionAuthRecordImportExcelListen;
+import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.dtos.community.elder.ElderAuthStatisticHeaderDTO;
+import com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO;
+import com.panzhihua.common.model.dtos.community.elder.PagePensionAuthStatisticDTO;
+import com.panzhihua.common.model.dtos.community.elder.SignElderAuthStatisticDTO;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.elders.ComEldersAuthStatisticHeaderVO;
+import com.panzhihua.common.model.vos.elders.ComEldersAuthStatisticVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.*;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -25,20 +44,12 @@
 import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
 import com.alibaba.fastjson.JSONArray;
 import com.panzhihua.common.controller.BaseController;
-import com.panzhihua.common.model.dtos.community.EldersAuthAddDTO;
-import com.panzhihua.common.model.dtos.community.EldersAuthFeedbackAddDTO;
-import com.panzhihua.common.model.dtos.community.ExcelElderAuthDTO;
-import com.panzhihua.common.model.dtos.community.PageEldersAuthDTO;
 import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.model.vos.community.EldersAuthDetailsVO;
-import com.panzhihua.common.model.vos.community.EldersAuthVO;
-import com.panzhihua.common.service.community.CommunityService;
-import com.panzhihua.common.utlis.ClazzUtils;
-import com.panzhihua.common.utlis.SFTPUtil;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  *
@@ -71,6 +82,9 @@
 
     @Resource
     private CommunityService communityService;
+
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
 
     @Value("${excel.elderimporturl}")
     private Object elderimporturl;
@@ -227,4 +241,715 @@
         return R.ok(elderimporturl);
     }
 
+
+    //2021-8-30 身份认证改版(高龄老人认证管理)接口
+    /**
+     * 分页查询高龄老人认证记录  pageElderAuthRecords  分页查询高龄老人认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @ApiOperation(value = "高龄认证-分页查询高龄老人认证记录---", response = ComElderAuthRecordVO.class)
+    @PostMapping("/authRecords/page")
+    public R pageElderAuthRecords(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        pageElderAuthRecordsDTO.setCommunityId(communityId);
+        return communityService.pageElderAuthRecords(pageElderAuthRecordsDTO);
+    }
+
+    /**
+     * 根据高龄认证记录id查询详情 detailElderAuthRecords  根据高龄认证记录id查询详情
+     * @param    authRecordId   高龄认证记录id
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @ApiOperation(value = "高龄认证-根据高龄认证记录id查询详情---", response = ComElderAuthRecordVO.class)
+    @GetMapping("/authRecords/detail")
+    public R detailElderAuthRecords(@RequestParam(value = "authRecordId") Long authRecordId) {
+        return communityService.detailElderAuthRecords(authRecordId);
+    }
+
+    /**
+     * 高龄认证审核 examineElderAuthRecords  高龄认证审核
+     * @param    comElderAuthRecordVO   高龄认证审核参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @ApiOperation(value = "高龄认证-高龄认证审核---")
+    @PostMapping("/authRecords/examine")
+    public R examineElderAuthRecords(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO) {
+        comElderAuthRecordVO.setApproverId(this.getUserId());
+        return communityService.examineElderAuthRecords(comElderAuthRecordVO);
+    }
+
+    /**
+     * 高龄认证标记 examineElderAuthRecords  高龄认证标记
+     * @param    comElderAuthRecordVO   高龄认证标记参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @ApiOperation(value = "高龄认证-高龄认证标记---")
+    @PostMapping("/authRecords/sign")
+    public R signElderAuthRecords(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO) {
+        return communityService.signElderAuthRecords(comElderAuthRecordVO);
+    }
+
+    /**
+     * 高龄认证导出 exportElderAuthRecords  高龄认证导出
+     * @param    ids   高龄认证记录id集合
+     * @return    R  导出结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @ApiOperation(value = "高龄认证-高龄认证导出---")
+    @PostMapping("/authRecords/export")
+    public R exportElderAuthRecords(@RequestBody List<Long> ids) {
+        // List<ComMngPopulationMistakeExcelVO> list = JSON.parseArray(mistakes,ComMngPopulationMistakeExcelVO.class);
+        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+        String ftpUrl = "/mnt/data/web/excel/";
+        String nowDate = DateUtils.getCurrentDateString();
+        String name = "高龄认证导出数据" + nowDate + ".xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    R r = communityService.getElderAuthRecordsByIds(ids);
+                    List<ComElderAuthRecordExcleVO> list = new ArrayList<>();
+                    if (R.isOk(r)) {
+                        list = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComElderAuthRecordExcleVO.class);
+                    }
+                    excelWriter = EasyExcel.write(fileName, ComElderAuthRecordExcleVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("高龄认证导出数据").build();
+                    excelWriter.write(list, writeSheet);
+                    excelWriter.finish();
+                    File file = new File(fileName);
+                    inputStream = new FileInputStream(file);
+                    sftp.uploadMore(ftpUrl, name, inputStream);
+                    sftp.logout();
+                    inputStream.close();
+                    String absolutePath = file.getAbsolutePath();
+                    boolean delete = file.delete();
+                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                    if (excelWriter != null) {
+                        excelWriter.finish();
+                    }
+                }
+            }
+            return R.ok(excelUrl + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "高龄认证统计-下载模板-线下认证居民导入---")
+    @GetMapping("/authRecords/uderLine/export")
+    public R exportUnderLineElderAuthRecords() {
+        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+        String ftpUrl = "/mnt/data/web/excel/";
+        String name = "高龄线下认证居民导入模板.xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    List<List<String>> list = new ArrayList<>();
+                    list = headDataFilling(true);
+                    EasyExcel.write(fileName).head(list).sheet("高龄线下认证居民导入模板").doWrite(null);
+                    File file = new File(fileName);
+                    inputStream = new FileInputStream(file);
+                    sftp.uploadMore(ftpUrl, name, inputStream);
+                    sftp.logout();
+                    inputStream.close();
+                    String absolutePath = file.getAbsolutePath();
+                    boolean delete = file.delete();
+                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                }
+            }
+            return R.ok(excelUrl + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "下载导入失败高龄认证数据---")
+    @PostMapping("/download/error/authRecords")
+    public R downloadErrorAuthRecord(@RequestParam(value = "key") String key) {
+        List<ComElderAuthRecordImportMistakeExcelVO> list = new ArrayList<>();
+        Boolean isExits = stringRedisTemplate.hasKey(key);
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        if (isExits) {
+            String json = valueOperations.get(key);
+            list = JSONArray.parseArray(json, ComElderAuthRecordImportMistakeExcelVO.class);
+        }
+        // List<ComMngPopulationMistakeExcelVO> list = JSON.parseArray(mistakes,ComMngPopulationMistakeExcelVO.class);
+        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+        String ftpUrl = "/mnt/data/web/excel/";
+        String nowDate = DateUtils.getCurrentDateString();
+        String name = "高龄认证记录导入错误数据" + nowDate + ".xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    excelWriter = EasyExcel.write(fileName, ComElderAuthRecordImportMistakeExcelVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("高龄认证记录导入错误数据").build();
+                    excelWriter.write(list, writeSheet);
+                    excelWriter.finish();
+                    File file = new File(fileName);
+                    inputStream = new FileInputStream(file);
+                    sftp.uploadMore(ftpUrl, name, inputStream);
+                    sftp.logout();
+                    inputStream.close();
+                    String absolutePath = file.getAbsolutePath();
+                    boolean delete = file.delete();
+                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                    if (excelWriter != null) {
+                        excelWriter.finish();
+                    }
+                }
+            }
+            return R.ok(excelUrl + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "高龄认证统计-excel导入线下认证居民---")
+    @PostMapping(value = "/authRecords/uderLine/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R importUnderLineElderAuthRecords(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComElderAuthRecordImportExcelListen comElderAuthRecordImportExcelListen = new ComElderAuthRecordImportExcelListen(
+                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, comElderAuthRecordImportExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "高龄认证统计-导出高龄认证统计---")
+    @PostMapping(value = "/authRecords/statistic/export")
+    public R exportElderAuthRecordsStatistic(@RequestBody PageElderAuthStatisticDTO pageElderAuthRecordsDTO) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        pageElderAuthRecordsDTO.setCommunityId(communityId);
+        String ftpUrl = "/mnt/data/web/excel/";
+        String nowDate = DateUtils.getCurrentDateString();
+        String name = "高龄认证统计导出数据" + nowDate + ".xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    R r = communityService.exportElderAuthRecordsStatistic(pageElderAuthRecordsDTO);
+                    List<ComElderAuthRecordStatisticExcleVO> list = new ArrayList<>();
+                    if (R.isOk(r)) {
+                        list = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComElderAuthRecordStatisticExcleVO.class);
+                    }
+                    excelWriter = EasyExcel.write(fileName, ComElderAuthRecordStatisticExcleVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("高龄认证统计导出数据").build();
+                    excelWriter.write(list, writeSheet);
+                    excelWriter.finish();
+                    File file = new File(fileName);
+                    inputStream = new FileInputStream(file);
+                    sftp.uploadMore(ftpUrl, name, inputStream);
+                    sftp.logout();
+                    inputStream.close();
+                    String absolutePath = file.getAbsolutePath();
+                    boolean delete = file.delete();
+                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                    if (excelWriter != null) {
+                        excelWriter.finish();
+                    }
+                }
+            }
+            return R.ok(excelUrl + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    /**
+     * 分页查询养老金人员认证记录  pagePensionAuthRecords  分页查询养老金人员认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/07 14:03
+     */
+    @ApiOperation(value = "养老认证-分页查询养老金人员认证记录---", response = ComPensionAuthRecordVO.class)
+    @PostMapping("/pensionAuthRecords/page")
+    public R pagePensionAuthRecords(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        pageElderAuthRecordsDTO.setCommunityId(communityId);
+        return communityService.pagePensionAuthRecords(pageElderAuthRecordsDTO);
+    }
+
+    /**
+     * 根据养老认证记录id查询详情 detailPensionAuthRecords  根据养老认证记录id查询详情
+     * @param    authRecordId   养老认证记录id
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/07 11:03
+     */
+    @ApiOperation(value = "养老认证-根据养老认证记录id查询详情---", response = ComPensionAuthRecordVO.class)
+    @GetMapping("/pensionAuthRecords/detail")
+    public R detailPensionAuthRecords(@RequestParam(value = "authRecordId") Long authRecordId) {
+        return communityService.detailPensionAuthRecords(authRecordId);
+    }
+
+    /**
+     * 养老认证审核 examinePensionAuthRecords  养老认证审核
+     * @param    comPensionAuthRecordVO   养老认证审核参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/07 11:03
+     */
+    @ApiOperation(value = "养老认证-养老认证审核---")
+    @PostMapping("/pensionAuthRecords/examine")
+    public R examinePensionAuthRecords(@RequestBody ComPensionAuthRecordVO comPensionAuthRecordVO) {
+        return communityService.examinePensionAuthRecords(comPensionAuthRecordVO);
+    }
+
+    /**
+     * 养老认证标记 signPensionAuthRecords  养老认证标记
+     * @param    comPensionAuthRecordVO   养老认证标记参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @ApiOperation(value = "养老认证-养老认证标记---")
+    @PostMapping("/pensionAuthRecords/sign")
+    public R signPensionAuthRecords(@RequestBody ComPensionAuthRecordVO comPensionAuthRecordVO) {
+        return communityService.signPensionAuthRecords(comPensionAuthRecordVO);
+    }
+
+    /**
+     * 养老认证导出 exportPensionAuthRecords  养老认证导出
+     * @param    ids   养老认证记录id集合
+     * @return    R  导出结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @ApiOperation(value = "养老认证-养老认证导出---")
+    @PostMapping("/pensionAuthRecords/export")
+    public R exportPensionAuthRecords(@RequestBody List<Long> ids) {
+        // List<ComMngPopulationMistakeExcelVO> list = JSON.parseArray(mistakes,ComMngPopulationMistakeExcelVO.class);
+        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+        String ftpUrl = "/mnt/data/web/excel/";
+        String nowDate = DateUtils.getCurrentDateString();
+        String name = "养老认证导出数据" + nowDate + ".xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    R r = communityService.getPensionAuthRecordsByIds(ids);
+                    List<ComPensionAuthRecordExcleVO> list = new ArrayList<>();
+                    if (R.isOk(r)) {
+                        list = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComPensionAuthRecordExcleVO.class);
+                    }
+                    excelWriter = EasyExcel.write(fileName, ComPensionAuthRecordExcleVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("养老认证导出数据").build();
+                    excelWriter.write(list, writeSheet);
+                    excelWriter.finish();
+                    File file = new File(fileName);
+                    inputStream = new FileInputStream(file);
+                    sftp.uploadMore(ftpUrl, name, inputStream);
+                    sftp.logout();
+                    inputStream.close();
+                    String absolutePath = file.getAbsolutePath();
+                    boolean delete = file.delete();
+                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                    if (excelWriter != null) {
+                        excelWriter.finish();
+                    }
+                }
+            }
+            return R.ok(excelUrl + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "养老认证统计-下载模板-线下认证居民导入---")
+    @GetMapping("/pensionAuthRecords/uderLine/export")
+    public R exportUnderLinePensionAuthRecords() {
+        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+        String ftpUrl = "/mnt/data/web/excel/";
+        String name = "养老线下认证居民导入模板.xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    List<List<String>> list = new ArrayList<>();
+                    list = headDataFilling(false);
+                    EasyExcel.write(fileName).head(list).sheet("养老线下认证居民导入模板").doWrite(null);
+                    File file = new File(fileName);
+                    inputStream = new FileInputStream(file);
+                    sftp.uploadMore(ftpUrl, name, inputStream);
+                    sftp.logout();
+                    inputStream.close();
+                    String absolutePath = file.getAbsolutePath();
+                    boolean delete = file.delete();
+                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                }
+            }
+            return R.ok(excelUrl + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "养老认证统计-excel导入线下认证居民---")
+    @PostMapping(value = "/pensionAuthRecords/uderLine/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R importUnderLinePensionAuthRecords(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComPensionAuthRecordImportExcelListen comPensionAuthRecordImportExcelListen = new ComPensionAuthRecordImportExcelListen(
+                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, comPensionAuthRecordImportExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "下载导入失败养老认证数据---")
+    @PostMapping("/download/error/pensionAuthRecords")
+    public R downloadErrorPensionPopulation(@RequestParam(value = "key") String key) {
+        List<ComPensionAuthRecordImportMistakeExcelVO> list = new ArrayList<>();
+        Boolean isExits = stringRedisTemplate.hasKey(key);
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        if (isExits) {
+            String json = valueOperations.get(key);
+            list = JSONArray.parseArray(json, ComPensionAuthRecordImportMistakeExcelVO.class);
+        }
+        // List<ComMngPopulationMistakeExcelVO> list = JSON.parseArray(mistakes,ComMngPopulationMistakeExcelVO.class);
+        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+        String ftpUrl = "/mnt/data/web/excel/";
+        String nowDate = DateUtils.getCurrentDateString();
+        String name = "养老认证记录导入错误数据" + nowDate + ".xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    excelWriter = EasyExcel.write(fileName, ComPensionAuthRecordImportMistakeExcelVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("养老认证记录导入错误数据").build();
+                    excelWriter.write(list, writeSheet);
+                    excelWriter.finish();
+                    File file = new File(fileName);
+                    inputStream = new FileInputStream(file);
+                    sftp.uploadMore(ftpUrl, name, inputStream);
+                    sftp.logout();
+                    inputStream.close();
+                    String absolutePath = file.getAbsolutePath();
+                    boolean delete = file.delete();
+                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                    if (excelWriter != null) {
+                        excelWriter.finish();
+                    }
+                }
+            }
+            return R.ok(excelUrl + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "养老认证统计-导出养老认证统计---")
+    @PostMapping(value = "/pensionAuthRecords/statistic/export")
+    public R exportPensionAuthRecordsStatistic(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        pageElderAuthRecordsDTO.setCommunityId(communityId);
+        String ftpUrl = "/mnt/data/web/excel/";
+        String nowDate = DateUtils.getCurrentDateString();
+        String name = "养老认证统计导出数据" + nowDate + ".xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    R r = communityService.exportPensionAuthRecordsStatistic(pageElderAuthRecordsDTO);
+                    List<ComPensionAuthRecordStatisticExcleVO> list = new ArrayList<>();
+                    if (R.isOk(r)) {
+                        list = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComPensionAuthRecordStatisticExcleVO.class);
+                    }
+                    excelWriter = EasyExcel.write(fileName, ComPensionAuthRecordStatisticExcleVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("养老认证统计导出数据").build();
+                    excelWriter.write(list, writeSheet);
+                    excelWriter.finish();
+                    File file = new File(fileName);
+                    inputStream = new FileInputStream(file);
+                    sftp.uploadMore(ftpUrl, name, inputStream);
+                    sftp.logout();
+                    inputStream.close();
+                    String absolutePath = file.getAbsolutePath();
+                    boolean delete = file.delete();
+                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                    if (excelWriter != null) {
+                        excelWriter.finish();
+                    }
+                }
+            }
+            return R.ok(excelUrl + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    /**
+     * 查询养老认证社区认证方式 setPensionAuthType  查询养老认证社区认证方式
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/10 16:03
+     */
+    @ApiOperation(value = "查询社区养老认证方式---", response = R.class)
+    @GetMapping("/pensionAuthRecords/authtype")
+    public R communityPensionAuthType() {
+        Long communityId = this.getCommunityId();
+        EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO = new EldersAuthTypeQueryDTO();
+        eldersAuthTypeQueryDTO.setCommunityId(communityId);
+        return communityService.communityPensionAuthType(eldersAuthTypeQueryDTO);
+    }
+
+    @PutMapping("/pensionAuthRecords/authType/{type}")
+    @ApiOperation(value = "设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验)---", response = R.class)
+    R setPensionAuthType(@PathVariable("type") Integer type) {
+        if (type != 1 && type != 2) {
+            return R.fail("参数错误");
+        }
+        return communityService.setPensionAuthType(this.getCommunityId(), type);
+    }
+
+    @ApiOperation(value = "查询社区高龄认证方式---", response = R.class)
+    @GetMapping("/authType")
+    public R communityAuthType() {
+        Long communityId = this.getCommunityId();
+        EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO = new EldersAuthTypeQueryDTO();
+        eldersAuthTypeQueryDTO.setCommunityId(communityId);
+        return communityService.communityElderAuthType(eldersAuthTypeQueryDTO);
+    }
+
+    @PutMapping("/authType/{type}")
+    @ApiOperation(value = "设置当前社区高龄认证方式:核验类型(1.视频认证 2.人脸核验)---", response = R.class)
+    public R setAuthType(@PathVariable("type") Integer type) {
+        if (type != 1 && type != 2) {
+            return R.fail("参数错误");
+        }
+        return communityService.setEldersAuthType(this.getCommunityId(), type);
+    }
+
+    /**
+     * 表头构建
+     * @param isBigAge  是否是高龄认证
+     * @return  表头数据
+     */
+    private List<List<String>> headDataFilling(Boolean isBigAge) {
+        List<List<String>> list = new ArrayList<List<String>>();
+        List<String> head0 = new ArrayList<String>();
+        head0.add("认证姓名");
+        List<String> head1 = new ArrayList<String>();
+        head1.add("认证身份证号码");
+        List<String> head2 = new ArrayList<String>();
+        head2.add("联系电话");
+        List<String> head3 = new ArrayList<String>();
+        head3.add("现居住地址");
+        List<String> head4 = new ArrayList<String>();
+        head4.add("认证时间(年/月/日 如:2021/1/1)");
+        List<String> head5 = new ArrayList<String>();
+        if(isBigAge){
+            head5.add("认证期数(年月 注:月份小于10,需要在月数前加0 如:202101)");
+        }else{
+            head5.add("认证期数(即认证年份,2021)");
+        }
+
+        List<String> head6 = new ArrayList<String>();
+        head6.add("标记(备注信息)");
+
+        list.add(head0);
+        list.add(head1);
+        list.add(head2);
+        list.add(head3);
+        list.add(head4);
+        list.add(head5);
+        list.add(head6);
+        return list;
+    }
+
+    @ApiOperation(value = "高龄认证统计-分页查询高龄老人认证统计记录---",response = ComEldersAuthStatisticVO.class)
+    @PostMapping("/auth/statistic/page")
+    public R pageAuthStatisticAdmin(@RequestBody PageElderAuthStatisticDTO pageElderAuthStatisticDTO) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        pageElderAuthStatisticDTO.setCommunityId(communityId);
+        return communityService.pageAuthStatisticAdmin(pageElderAuthStatisticDTO);
+    }
+
+    @ApiOperation(value = "高龄认证统计-标记高龄老人认证统计记录---")
+    @PostMapping("/auth/statistic/sign")
+    public R signAuthStatisticAdmin(@RequestBody SignElderAuthStatisticDTO signElderAuthStatisticDTO) {
+        signElderAuthStatisticDTO.setUserId(this.getUserId());
+        return communityService.signAuthStatisticAdmin(signElderAuthStatisticDTO);
+    }
+
+    @ApiOperation(value = "高龄认证统计-表头统计---",response = ComEldersAuthStatisticHeaderVO.class)
+    @PostMapping(value = "/auth/header/statistic")
+    public R getAuthHeaderStatisticAdmin(@RequestBody ElderAuthStatisticHeaderDTO statisticHeaderDTO) {
+        statisticHeaderDTO.setCommunityId(this.getCommunityId());
+        return communityService.getAuthHeaderStatisticAdmin(statisticHeaderDTO);
+    }
+
+    @ApiOperation(value = "养老认证统计-分页查询养老认证统计记录---",response = ComEldersAuthStatisticVO.class)
+    @PostMapping("/pensionAuthRecords/statistic/page")
+    public R pagePensionAuthStatisticAdmin(@RequestBody PagePensionAuthStatisticDTO pensionAuthStatisticDTO) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        pensionAuthStatisticDTO.setCommunityId(communityId);
+        return communityService.pagePensionAuthStatisticAdmin(pensionAuthStatisticDTO);
+    }
+
+    @ApiOperation(value = "养老认证统计-标记养老认证统计记录---")
+    @PostMapping("/pensionAuthRecords/statistic/sign")
+    public R signPensionAuthStatisticAdmin(@RequestBody SignElderAuthStatisticDTO signElderAuthStatisticDTO) {
+        signElderAuthStatisticDTO.setUserId(this.getUserId());
+        return communityService.signPensionAuthStatisticAdmin(signElderAuthStatisticDTO);
+    }
+
+    @ApiOperation(value = "养老认证统计-表头统计---",response = ComEldersAuthStatisticHeaderVO.class)
+    @PostMapping(value = "/pension/auth/header/statistic")
+    public R getPensionAuthHeaderStatisticAdmin(@RequestBody ElderAuthStatisticHeaderDTO statisticHeaderDTO) {
+        statisticHeaderDTO.setCommunityId(this.getCommunityId());
+        return communityService.getPensionAuthHeaderStatisticAdmin(statisticHeaderDTO);
+    }
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/NeighborApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/NeighborApi.java
index 60842af..9ff48c7 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/NeighborApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/NeighborApi.java
@@ -5,6 +5,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.NeighborCircleConstants;
 import com.panzhihua.common.controller.BaseController;
 import com.panzhihua.common.model.dtos.neighbor.*;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
@@ -176,4 +177,38 @@
         return communityService.editNeighborTopicByAdmin(addCircleTopicAdminDTO);
     }
 
+    @ApiOperation(value = "获取社区审核状态")
+    @GetMapping("getCircleExamineStatus")
+    public R getCircleExamineStatus(){
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        if(loginUserInfo == null){
+            return R.fail("请先登录");
+        }
+        Long communityId = loginUserInfo.getCommunityId();
+        //查询社区自动审核是否开着
+        String key = NeighborCircleConstants.NEIGHBOR_CIRCLE_AUTO_EXAMINE;
+        R isOk = communityService.getSysConfValue(key + communityId,communityId);
+        if(R.isOk(isOk)){
+            if(isOk.getData() != null){
+                return isOk;
+            }else{
+                communityService.addSysConfValue(key + communityId,communityId,"社区邻里圈自动审核参数","1");
+                isOk.setData("1");
+                return isOk;
+            }
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "编辑社区审核状态")
+    @GetMapping("editCircleExamineStatus")
+    public R editCircleExamineStatus(@RequestParam("status") Integer status){
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        if(loginUserInfo == null){
+            return R.fail("请先登录");
+        }
+        Long communityId = loginUserInfo.getCommunityId();
+        return communityService.editSysConfValue(communityId,status);
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
index f88c112..f50a25a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
@@ -308,6 +308,48 @@
         return R.ok();
     }
 
+    @ApiOperation(value = "excel导入高龄老人")
+    @PostMapping(value = "/serve/importElder", consumes = "multipart/*",
+            headers = "content-type=multipart/form-date")
+    public R importElder(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComMngPopulationElderExcelListen comMngPopulationElderExcelListen =
+                    new ComMngPopulationElderExcelListen(communityService, this.getCommunityId(),
+                            this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, comMngPopulationElderExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "excel导入养老金人员")
+    @PostMapping(value = "/serve/importPension", consumes = "multipart/*",
+            headers = "content-type=multipart/form-date")
+    public R importPension(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComMngPopulationPensionExcelListen comMngPopulationPensionExcelListen =
+                    new ComMngPopulationPensionExcelListen(communityService, this.getCommunityId(),
+                            this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, comMngPopulationPensionExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
     /**
      * 确认导入实有人口(有则更新,无则新建)
      *
@@ -365,7 +407,8 @@
     @ApiOperation(value = "实有人口详情", response = ComMngPopulationVO.class)
     @PostMapping("/detail")
     public R detailPopulation(@RequestParam(value = "populationId") Long populationId) {
-        return communityService.detailPopulation(populationId);
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        return communityService.detailPopulation(populationId, communityId);
     }
 
     @ApiOperation(value = "查询实有人口电子档案", response = UserElectronicFileVO.class)
@@ -406,7 +449,7 @@
                     data = formDataFilling();
 
                     // 查询当前社区标签列表
-                    R tagsResult = userService.listTags(communityId);
+                    R tagsResult = userService.listTags();
                     if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                         List<String> TagsList = (List<String>)tagsResult.getData();
                         // 动态加载标签列表到表头
@@ -466,7 +509,7 @@
                     list = headDrugDataFilling();
 
                     // 查询当前社区标签列表
-                    R tagsResult = userService.listTags(communityId);
+                    R tagsResult = userService.listTags();
                     if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                         List<String> TagsList = (List<String>)tagsResult.getData();
                         // 动态加载标签列表到表头
@@ -526,7 +569,7 @@
                     list = headCorrectDataFilling();
 
                     // 查询当前社区标签列表
-                    R tagsResult = userService.listTags(communityId);
+                    R tagsResult = userService.listTags();
                     if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                         List<String> TagsList = (List<String>)tagsResult.getData();
                         // 动态加载标签列表到表头
@@ -586,7 +629,7 @@
                     list = headMajorDataFilling();
 
                     // 查询当前社区标签列表
-                    R tagsResult = userService.listTags(communityId);
+                    R tagsResult = userService.listTags();
                     if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                         List<String> TagsList = (List<String>)tagsResult.getData();
                         // 动态加载标签列表到表头
@@ -646,7 +689,7 @@
                     list = headCultDataFilling();
 
                     // 查询当前社区标签列表
-                    R tagsResult = userService.listTags(communityId);
+                    R tagsResult = userService.listTags();
                     if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                         List<String> TagsList = (List<String>)tagsResult.getData();
                         // 动态加载标签列表到表头
@@ -706,7 +749,7 @@
                     list = headRehabilitationDataFilling();
 
                     // 查询当前社区标签列表
-                    R tagsResult = userService.listTags(communityId);
+                    R tagsResult = userService.listTags();
                     if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                         List<String> TagsList = (List<String>)tagsResult.getData();
                         // 动态加载标签列表到表头
@@ -766,7 +809,7 @@
                     list = headKeyDataFilling();
 
                     // 查询当前社区标签列表
-                    R tagsResult = userService.listTags(communityId);
+                    R tagsResult = userService.listTags();
                     if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                         List<String> TagsList = (List<String>)tagsResult.getData();
                         // 动态加载标签列表到表头
@@ -826,7 +869,7 @@
                     list = headSentenceDataFilling();
 
                     // 查询当前社区标签列表
-                    R tagsResult = userService.listTags(communityId);
+                    R tagsResult = userService.listTags();
                     if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                         List<String> TagsList = (List<String>)tagsResult.getData();
                         // 动态加载标签列表到表头
@@ -886,7 +929,7 @@
                     list = headVeteransDataFilling();
 
                     // 查询当前社区标签列表
-                    R tagsResult = userService.listTags(communityId);
+                    R tagsResult = userService.listTags();
                     if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                         List<String> TagsList = (List<String>)tagsResult.getData();
                         // 动态加载标签列表到表头
@@ -946,7 +989,7 @@
                     list = headDisabilityDataFilling();
 
                     // 查询当前社区标签列表
-                    R tagsResult = userService.listTags(communityId);
+                    R tagsResult = userService.listTags();
                     if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                         List<String> TagsList = (List<String>)tagsResult.getData();
                         // 动态加载标签列表到表头
@@ -1006,7 +1049,7 @@
                     list = headLowSecurityDataFilling();
 
                     // 查询当前社区标签列表
-                    R tagsResult = userService.listTags(communityId);
+                    R tagsResult = userService.listTags();
                     if (Constants.SUCCESS.equals(tagsResult.getCode())) {
                         List<String> TagsList = (List<String>)tagsResult.getData();
                         // 动态加载标签列表到表头
@@ -1035,6 +1078,126 @@
                 }
             }
             return R.ok(excelUrl + "低保户导入模板.xlsx");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "高龄老人-下载模板")
+    @GetMapping("/export/elder")
+    public R exportElder() {
+        // 获取登陆用户绑定社区id
+        Long communityId = 2L;// this.getCommunityId();
+        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+        String ftpUrl = "/mnt/data/web/excel/";
+        String name = "高龄老人导入模板.xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    List<List<String>> list = new ArrayList<>();
+                    List<List<Object>> dataList = new ArrayList<>();
+                    list = headElderDataFilling();
+
+                    // 查询当前社区标签列表
+                    R tagsResult = userService.listTags();
+                    if (Constants.SUCCESS.equals(tagsResult.getCode())) {
+                        List<String> TagsList = (List<String>)tagsResult.getData();
+                        // 动态加载标签列表到表头
+                        for (int i = 0; i < TagsList.size(); i++) {
+                            if (!"高龄老人".equals(TagsList.get(i))) {
+                                List<String> head = new ArrayList<>();
+                                head.add(TagsList.get(i) + "(是/否)");
+                                list.add(head);
+                            }
+                        }
+                    }
+                    EasyExcel.write(fileName).head(list).sheet("高龄老人导入模板").doWrite(dataList);
+                    File file = new File(fileName);
+                    inputStream = new FileInputStream(file);
+                    sftp.uploadMore(ftpUrl, name, inputStream);
+                    sftp.logout();
+                    inputStream.close();
+                    String absolutePath = file.getAbsolutePath();
+                    boolean delete = file.delete();
+                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                }
+            }
+            return R.ok(excelUrl + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "养老金居民-下载模板")
+    @GetMapping("/export/pension")
+    public R exportPension() {
+        // 获取登陆用户绑定社区id
+        Long communityId = 2L;// this.getCommunityId();
+        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+        String ftpUrl = "/mnt/data/web/excel/";
+        String name = "养老金居民导入模板.xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    List<List<String>> list = new ArrayList<>();
+                    List<List<Object>> dataList = new ArrayList<>();
+                    list = headPensionDataFilling();
+
+                    // 查询当前社区标签列表
+                    R tagsResult = userService.listTags();
+                    if (Constants.SUCCESS.equals(tagsResult.getCode())) {
+                        List<String> TagsList = (List<String>)tagsResult.getData();
+                        // 动态加载标签列表到表头
+                        for (int i = 0; i < TagsList.size(); i++) {
+                            if (!"养老金居民".equals(TagsList.get(i))) {
+                                List<String> head = new ArrayList<>();
+                                head.add(TagsList.get(i) + "(是/否)");
+                                list.add(head);
+                            }
+                        }
+                    }
+                    EasyExcel.write(fileName).head(list).sheet("养老金居民导入模板").doWrite(dataList);
+                    File file = new File(fileName);
+                    inputStream = new FileInputStream(file);
+                    sftp.uploadMore(ftpUrl, name, inputStream);
+                    sftp.logout();
+                    inputStream.close();
+                    String absolutePath = file.getAbsolutePath();
+                    boolean delete = file.delete();
+                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                }
+            }
+            return R.ok(excelUrl + name);
         } catch (Exception e) {
             e.printStackTrace();
             log.error("文件传输失败【{}】", e.getMessage());
@@ -2255,6 +2418,170 @@
         return list;
     }
 
+    // 高龄老人
+    private List<List<String>> headElderDataFilling() {
+        List<List<String>> list = new ArrayList<List<String>>();
+        List<String> head0 = new ArrayList<String>();
+        head0.add("姓名");
+        List<String> head1 = new ArrayList<String>();
+        head1.add("身份证(性别和年龄自动根据身份证号识别)");
+        List<String> head2 = new ArrayList<String>();
+        head2.add("民族");
+        List<String> head3 = new ArrayList<String>();
+        head3.add("政治面貌(群众/中共党员/共青团员)");
+        List<String> head4 = new ArrayList<String>();
+        head4.add("是否租住");
+        List<String> head5 = new ArrayList<String>();
+        head5.add("*街/路/巷");
+        List<String> head6 = new ArrayList<String>();
+        head6.add("*小区号(政府对于每个小区都有特定编号)");
+        List<String> head7 = new ArrayList<String>();
+        head7.add("楼排号");
+        List<String> head8 = new ArrayList<String>();
+        head8.add("单元号");
+        List<String> head9 = new ArrayList<String>();
+        head9.add("户室(四位数表示。前两位楼层,后两位户号)");
+        List<String> head10 = new ArrayList<String>();
+        head10.add("房屋状态(自住/租住/其他)");
+        List<String> head11 = new ArrayList<String>();
+        head11.add("房屋用途(住宅/公寓/宿舍/仓库/其他)");
+        List<String> head12 = new ArrayList<String>();
+        head12.add("控状态(常规/关注/管控)");
+        List<String> head13 = new ArrayList<String>();
+        head13.add("联系方式");
+        List<String> head14 = new ArrayList<String>();
+        head14.add("籍贯");
+        List<String> head15 = new ArrayList<String>();
+        head15.add("文化程度");
+        List<String> head16 = new ArrayList<String>();
+        head16.add("婚姻状况");
+        List<String> head17 = new ArrayList<String>();
+        head17.add("健康状况");
+        List<String> head18 = new ArrayList<String>();
+        head18.add("本地/外地");
+        List<String> head19 = new ArrayList<String>();
+        head19.add("户口所在地");
+        List<String> head20 = new ArrayList<String>();
+        head20.add("*高龄老人登记(是/否)");
+        List<String> head21 = new ArrayList<String>();
+        head21.add("*健在(是/否)");
+        List<String> head22 = new ArrayList<String>();
+        head22.add("*高龄津贴开始领取时间(年-月-日)");
+        List<String> head23 = new ArrayList<String>();
+        head23.add("*现居住地址");
+        List<String> head24 = new ArrayList<String>();
+        head24.add("备注");
+
+        list.add(head0);
+        list.add(head1);
+        list.add(head2);
+        list.add(head3);
+        list.add(head4);
+        list.add(head5);
+        list.add(head6);
+        list.add(head7);
+        list.add(head8);
+        list.add(head9);
+        list.add(head10);
+        list.add(head11);
+        list.add(head12);
+        list.add(head13);
+        list.add(head14);
+        list.add(head15);
+        list.add(head16);
+        list.add(head17);
+        list.add(head18);
+        list.add(head19);
+        list.add(head20);
+        list.add(head21);
+        list.add(head22);
+        list.add(head23);
+        list.add(head24);
+        return list;
+    }
+
+    // 养老金居民
+    private List<List<String>> headPensionDataFilling() {
+        List<List<String>> list = new ArrayList<List<String>>();
+        List<String> head0 = new ArrayList<String>();
+        head0.add("姓名");
+        List<String> head1 = new ArrayList<String>();
+        head1.add("身份证(性别和年龄自动根据身份证号识别)");
+        List<String> head2 = new ArrayList<String>();
+        head2.add("民族");
+        List<String> head3 = new ArrayList<String>();
+        head3.add("政治面貌(群众/中共党员/共青团员)");
+        List<String> head4 = new ArrayList<String>();
+        head4.add("是否租住");
+        List<String> head5 = new ArrayList<String>();
+        head5.add("*街/路/巷");
+        List<String> head6 = new ArrayList<String>();
+        head6.add("*小区号(政府对于每个小区都有特定编号)");
+        List<String> head7 = new ArrayList<String>();
+        head7.add("楼排号");
+        List<String> head8 = new ArrayList<String>();
+        head8.add("单元号");
+        List<String> head9 = new ArrayList<String>();
+        head9.add("户室(四位数表示。前两位楼层,后两位户号)");
+        List<String> head10 = new ArrayList<String>();
+        head10.add("房屋状态(自住/租住/其他)");
+        List<String> head11 = new ArrayList<String>();
+        head11.add("房屋用途(住宅/公寓/宿舍/仓库/其他)");
+        List<String> head12 = new ArrayList<String>();
+        head12.add("控状态(常规/关注/管控)");
+        List<String> head13 = new ArrayList<String>();
+        head13.add("联系方式");
+        List<String> head14 = new ArrayList<String>();
+        head14.add("籍贯");
+        List<String> head15 = new ArrayList<String>();
+        head15.add("文化程度");
+        List<String> head16 = new ArrayList<String>();
+        head16.add("婚姻状况");
+        List<String> head17 = new ArrayList<String>();
+        head17.add("健康状况");
+        List<String> head18 = new ArrayList<String>();
+        head18.add("本地/外地");
+        List<String> head19 = new ArrayList<String>();
+        head19.add("户口所在地");
+        List<String> head20 = new ArrayList<String>();
+        head20.add("*养老登记(是/否)");
+        List<String> head21 = new ArrayList<String>();
+        head21.add("*健在(是/否)");
+        List<String> head22 = new ArrayList<String>();
+        head22.add("*养老金开始领取时间(年-月-日)");
+        List<String> head23 = new ArrayList<String>();
+        head23.add("*现居住地址");
+        List<String> head24 = new ArrayList<String>();
+        head24.add("备注");
+
+        list.add(head0);
+        list.add(head1);
+        list.add(head2);
+        list.add(head3);
+        list.add(head4);
+        list.add(head5);
+        list.add(head6);
+        list.add(head7);
+        list.add(head8);
+        list.add(head9);
+        list.add(head10);
+        list.add(head11);
+        list.add(head12);
+        list.add(head13);
+        list.add(head14);
+        list.add(head15);
+        list.add(head16);
+        list.add(head17);
+        list.add(head18);
+        list.add(head19);
+        list.add(head20);
+        list.add(head21);
+        list.add(head22);
+        list.add(head23);
+        list.add(head24);
+        return list;
+    }
+
     private List<Object> formDataFilling() {
         List<Object> data = new ArrayList<>();
         data.add("张三");
@@ -3108,4 +3435,120 @@
             return R.fail();
         }
     }
+
+    @ApiOperation(value = "下载导入失败高龄老人数据")
+    @PostMapping("/download/error/populationElder")
+    public R downloadErrorElderPopulation(@RequestParam(value = "key") String key) {
+        List<ComMngPopulationElderMistakeExcelVO> list = new ArrayList<>();
+        Boolean isExits = stringRedisTemplate.hasKey(key);
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        if (isExits) {
+            String json = valueOperations.get(key);
+            list = JSONArray.parseArray(json, ComMngPopulationElderMistakeExcelVO.class);
+        }
+        // List<ComMngPopulationMistakeExcelVO> list = JSON.parseArray(mistakes,ComMngPopulationMistakeExcelVO.class);
+        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+        String ftpUrl = "/mnt/data/web/excel/";
+        String nowDate = DateUtils.getCurrentDateString();
+        String name = "高龄老人错误数据" + nowDate + ".xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    excelWriter = EasyExcel.write(fileName, ComMngPopulationElderMistakeExcelVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("高龄老人错误数据").build();
+                    excelWriter.write(list, writeSheet);
+                    excelWriter.finish();
+                    File file = new File(fileName);
+                    inputStream = new FileInputStream(file);
+                    sftp.uploadMore(ftpUrl, name, inputStream);
+                    sftp.logout();
+                    inputStream.close();
+                    String absolutePath = file.getAbsolutePath();
+                    boolean delete = file.delete();
+                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                    if (excelWriter != null) {
+                        excelWriter.finish();
+                    }
+                }
+            }
+            return R.ok(excelUrl + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "下载导入失败养老金人员数据")
+    @PostMapping("/download/error/populationPension")
+    public R downloadErrorPensionPopulation(@RequestParam(value = "key") String key) {
+        List<ComMngPopulationPensionMistakeExcelVO> list = new ArrayList<>();
+        Boolean isExits = stringRedisTemplate.hasKey(key);
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        if (isExits) {
+            String json = valueOperations.get(key);
+            list = JSONArray.parseArray(json, ComMngPopulationPensionMistakeExcelVO.class);
+        }
+        // List<ComMngPopulationMistakeExcelVO> list = JSON.parseArray(mistakes,ComMngPopulationMistakeExcelVO.class);
+        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+        String ftpUrl = "/mnt/data/web/excel/";
+        String nowDate = DateUtils.getCurrentDateString();
+        String name = "养老金人员错误数据" + nowDate + ".xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    excelWriter = EasyExcel.write(fileName, ComMngPopulationPensionMistakeExcelVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("养老金人员错误数据").build();
+                    excelWriter.write(list, writeSheet);
+                    excelWriter.finish();
+                    File file = new File(fileName);
+                    inputStream = new FileInputStream(file);
+                    sftp.uploadMore(ftpUrl, name, inputStream);
+                    sftp.logout();
+                    inputStream.close();
+                    String absolutePath = file.getAbsolutePath();
+                    boolean delete = file.delete();
+                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                    if (excelWriter != null) {
+                        excelWriter.finish();
+                    }
+                }
+            }
+            return R.ok(excelUrl + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/MinioUtil.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/MinioUtil.java
index 01f8a70..da79f5c 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/MinioUtil.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/MinioUtil.java
@@ -14,14 +14,18 @@
 import org.springframework.stereotype.Component;
 import org.springframework.web.multipart.MultipartFile;
 
+import com.panzhihua.common.utlis.DateUtils;
+
 import io.minio.MinioClient;
 import io.minio.ObjectStat;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * program 攀枝花智慧社区项目 description minio工具类
  *
  * @author manailin Date 2021-08-19 15:30
  **/
+@Slf4j
 @Component
 @EnableConfigurationProperties(MinioConfig.class)
 public class MinioUtil {
@@ -52,10 +56,13 @@
                 UUID uuid = UUID.randomUUID();
                 StringBuilder s = new StringBuilder();
                 s.append(uuid.toString().replace("-", "")).append("/");
+                log.info("开始连接minio服务器" + DateUtils.getCurrentDateStr_MS());
                 MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(),
                     minioProperties.getSecretKey());
+                log.info("结束连接minio服务器" + DateUtils.getCurrentDateStr_MS());
                 // bucket 不存在,创建
                 if (!minioClient.bucketExists(minioProperties.getBucket())) {
+                    log.info("bucket 不存在,创建");
                     minioClient.makeBucket(minioProperties.getBucket());
                 }
                 // 得到文件流
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/bootstrap.yml
index 4ed9412..7f4e139 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/bootstrap.yml
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/bootstrap.yml
@@ -12,8 +12,8 @@
     active: ${ENV:dev}
   servlet:
     multipart:
-      max-file-size: 100MB
-      max-request-size: 100MB
+      max-file-size: 200MB
+      max-request-size: 200MB
 
 eureka:
   client:
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/grid_app/pom.xml
index f0b125f..901a94d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/grid_app/pom.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/pom.xml
@@ -57,6 +57,13 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-actuator</artifactId>
         </dependency>
+
+        <!--minio文件存储-->
+        <dependency>
+            <groupId>io.minio</groupId>
+            <artifactId>minio</artifactId>
+            <version>6.0.8</version>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonApi.java
index 51bd3a3..2883b54 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonApi.java
@@ -12,6 +12,8 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
+import com.panzhihua.grid_app.config.MinioUtil;
+import org.apache.commons.io.FilenameUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -61,6 +63,8 @@
     private String url;
     @Resource
     private CommunityService communityService;
+    @Resource
+    private MinioUtil minioUtil;
 
     @ApiOperation(value = "上传照片/视频 (jpg/jpeg/png/mp4/mov)")
     @PostMapping(value = "uploadimage", consumes = "multipart/*", headers = "content-type=multipart/form-date")
@@ -109,9 +113,23 @@
 
     }
 
+    @ApiOperation(value = "新上传照片接口")
+    @PostMapping(value = "/uploadimages", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImages(@RequestParam MultipartFile file, HttpServletRequest request) {
+        try {
+            String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+            String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension;
+            String imageUrl = minioUtil.upload(file, name);
+            return R.ok(imageUrl);
+        } catch (Exception e) {
+            log.error("上传照片失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
     @ApiOperation(value = "批量上传照片/视频 (jpg/jpeg/png/mp4/mov)")
     @PostMapping(value = "uploads", consumes = "multipart/*", headers = "content-type=multipart/form-date")
-    public R uploadImages(@RequestParam MultipartFile[] files, HttpServletRequest request) throws IOException {
+    public R uploads(@RequestParam MultipartFile[] files, HttpServletRequest request) throws IOException {
         // 微信图片内容校验
         // WxMaSecCheckService wxMaSecCheckService = wxMaConfiguration.getMaService().getSecCheckService();
         String property = System.getProperty("user.dir");
@@ -158,6 +176,24 @@
         return R.ok(urlList);
     }
 
+    @ApiOperation(value = "新批量文件上传接口")
+    @PostMapping(value = "/uploadimages", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R ossUploads(@RequestParam MultipartFile[] files, HttpServletRequest request) {
+        try {
+            List<String> urlList = new ArrayList<>();
+            for (MultipartFile file : files) {
+                String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+                String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension;
+                String imageUrl = minioUtil.upload(file, name);
+                urlList.add(imageUrl);
+            }
+            return R.ok(urlList);
+        } catch (Exception e) {
+            log.error("上传文件失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
     @GetMapping("/getConf/noToken")
     @ApiOperation(value = "根据code查询系统配置")
     public R getConf(@RequestParam("code") String code) {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/config/MinioConfig.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/config/MinioConfig.java
new file mode 100644
index 0000000..166103b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/config/MinioConfig.java
@@ -0,0 +1,28 @@
+package com.panzhihua.grid_app.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * program 攀枝花智慧社区项目 description minio存储信息配置
+ *
+ * @author manailin Date 2021-08-19 15:30
+ **/
+@Data
+@ConfigurationProperties(prefix = "minio")
+public class MinioConfig {
+
+    private String host;
+
+    private String accessKey;
+
+    private String secretKey;
+
+    private String url;
+
+    private String bucket;
+
+    private String aliasName;
+
+    private String aliasPCName;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/config/MinioUtil.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/config/MinioUtil.java
new file mode 100644
index 0000000..f217d97
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/config/MinioUtil.java
@@ -0,0 +1,125 @@
+package com.panzhihua.grid_app.config;
+
+import io.minio.MinioClient;
+import io.minio.ObjectStat;
+import org.apache.commons.io.IOUtils;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.util.UUID;
+
+/**
+ * program 攀枝花智慧社区项目 description minio工具类
+ *
+ * @author manailin Date 2021-08-19 15:30
+ **/
+@Component
+@EnableConfigurationProperties(MinioConfig.class)
+public class MinioUtil {
+
+    @Resource
+    private MinioConfig minioProperties;
+
+    public static byte[] toByteArray(InputStream input) throws IOException {
+        ByteArrayOutputStream output = new ByteArrayOutputStream();
+        byte[] buffer = new byte[4096];
+        int n = 0;
+        while (-1 != (n = input.read(buffer))) {
+            output.write(buffer, 0, n);
+        }
+        return output.toByteArray();
+    }
+
+    /**
+     * 文件上传
+     *
+     * @param file
+     *            要上传的文件
+     * @return
+     */
+    public String upload(MultipartFile file, String name) {
+        if (null != file) {
+            try {
+                UUID uuid = UUID.randomUUID();
+                StringBuilder s = new StringBuilder();
+                s.append(uuid.toString().replace("-", "")).append("/");
+                MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(),
+                    minioProperties.getSecretKey());
+                // bucket 不存在,创建
+                if (!minioClient.bucketExists(minioProperties.getBucket())) {
+                    minioClient.makeBucket(minioProperties.getBucket());
+                }
+                // 得到文件流
+                InputStream input = file.getInputStream();
+                // 文件名
+                // String fileName = uuid + "/images." + FilenameUtils.getExtension(file.getOriginalFilename());
+                String fileName = s.append(name).toString();
+                String contentType = file.getContentType();
+                minioClient.putObject(minioProperties.getBucket(), fileName, input, contentType);
+                StringBuilder fileUrl = new StringBuilder(minioProperties.getUrl());
+                String url = fileUrl.append(fileName).toString();
+                return url;
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 文件下载
+     *
+     * @param response
+     * @param url
+     */
+    public void download(HttpServletResponse response, String url) {
+        // 从链接中得到文件名
+        String replace = url.replace(minioProperties.getBucket() + "/", "#");
+        String fileName = replace.split("#")[1];
+        InputStream inputStream;
+        try {
+            MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(),
+                minioProperties.getSecretKey());
+            ObjectStat stat = minioClient.statObject(minioProperties.getBucket(), fileName);
+            inputStream = minioClient.getObject(minioProperties.getBucket(), fileName);
+            response.setContentType(stat.contentType());
+            response.setCharacterEncoding("UTF-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
+            IOUtils.copy(inputStream, response.getOutputStream());
+            inputStream.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    /**
+     * 文件下载
+     *
+     * @param response
+     * @param url
+     */
+    public byte[] getBytes(HttpServletResponse response, String url) {
+        // 从链接中得到文件名
+        String replace = url.replace(minioProperties.getBucket() + "/", "#");
+        String fileName = replace.split("#")[1];
+        InputStream inputStream;
+        byte[] bytes = new byte[0];
+        try {
+            MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(),
+                minioProperties.getSecretKey());
+            inputStream = minioClient.getObject(minioProperties.getBucket(), fileName);
+            bytes = toByteArray(inputStream);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return bytes;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/pom.xml
index 44d1176..c10aaf3 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/pom.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/pom.xml
@@ -57,6 +57,13 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-actuator</artifactId>
         </dependency>
+
+        <!--minio文件存储-->
+        <dependency>
+            <groupId>io.minio</groupId>
+            <artifactId>minio</artifactId>
+            <version>6.0.8</version>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/CommonApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/CommonApi.java
index ab68aad..b77bab2 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/CommonApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/CommonApi.java
@@ -8,8 +8,11 @@
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
+import com.panzhihua.grid_backstage.config.MinioUtil;
+import org.apache.commons.io.FilenameUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -59,6 +62,8 @@
     private int port;
     @Value("${ftp.url}")
     private String url;
+    @Resource
+    private MinioUtil minioUtil;
 
     @ApiOperation(value = "上传照片/视频 (jpg/jpeg/png/mp4/mov)")
     @PostMapping(value = "uploadimage", consumes = "multipart/*", headers = "content-type=multipart/form-date")
@@ -111,4 +116,18 @@
 
     }
 
+    @ApiOperation(value = "新上传照片接口")
+    @PostMapping(value = "/uploadimages", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImages(@RequestParam MultipartFile file, HttpServletRequest request) {
+        try {
+            String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+            String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension;
+            String imageUrl = minioUtil.upload(file, name);
+            return R.ok(imageUrl);
+        } catch (Exception e) {
+            log.error("上传照片失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/MinioConfig.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/MinioConfig.java
new file mode 100644
index 0000000..591a707
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/MinioConfig.java
@@ -0,0 +1,28 @@
+package com.panzhihua.grid_backstage.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * program 攀枝花智慧社区项目 description minio存储信息配置
+ *
+ * @author manailin Date 2021-08-19 15:30
+ **/
+@Data
+@ConfigurationProperties(prefix = "minio")
+public class MinioConfig {
+
+    private String host;
+
+    private String accessKey;
+
+    private String secretKey;
+
+    private String url;
+
+    private String bucket;
+
+    private String aliasName;
+
+    private String aliasPCName;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/MinioUtil.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/MinioUtil.java
new file mode 100644
index 0000000..24c7719
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/MinioUtil.java
@@ -0,0 +1,125 @@
+package com.panzhihua.grid_backstage.config;
+
+import io.minio.MinioClient;
+import io.minio.ObjectStat;
+import org.apache.commons.io.IOUtils;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.util.UUID;
+
+/**
+ * program 攀枝花智慧社区项目 description minio工具类
+ *
+ * @author manailin Date 2021-08-19 15:30
+ **/
+@Component
+@EnableConfigurationProperties(MinioConfig.class)
+public class MinioUtil {
+
+    @Resource
+    private MinioConfig minioProperties;
+
+    public static byte[] toByteArray(InputStream input) throws IOException {
+        ByteArrayOutputStream output = new ByteArrayOutputStream();
+        byte[] buffer = new byte[4096];
+        int n = 0;
+        while (-1 != (n = input.read(buffer))) {
+            output.write(buffer, 0, n);
+        }
+        return output.toByteArray();
+    }
+
+    /**
+     * 文件上传
+     *
+     * @param file
+     *            要上传的文件
+     * @return
+     */
+    public String upload(MultipartFile file, String name) {
+        if (null != file) {
+            try {
+                UUID uuid = UUID.randomUUID();
+                StringBuilder s = new StringBuilder();
+                s.append(uuid.toString().replace("-", "")).append("/");
+                MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(),
+                    minioProperties.getSecretKey());
+                // bucket 不存在,创建
+                if (!minioClient.bucketExists(minioProperties.getBucket())) {
+                    minioClient.makeBucket(minioProperties.getBucket());
+                }
+                // 得到文件流
+                InputStream input = file.getInputStream();
+                // 文件名
+                // String fileName = uuid + "/images." + FilenameUtils.getExtension(file.getOriginalFilename());
+                String fileName = s.append(name).toString();
+                String contentType = file.getContentType();
+                minioClient.putObject(minioProperties.getBucket(), fileName, input, contentType);
+                StringBuilder fileUrl = new StringBuilder(minioProperties.getUrl());
+                String url = fileUrl.append(fileName).toString();
+                return url;
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 文件下载
+     *
+     * @param response
+     * @param url
+     */
+    public void download(HttpServletResponse response, String url) {
+        // 从链接中得到文件名
+        String replace = url.replace(minioProperties.getBucket() + "/", "#");
+        String fileName = replace.split("#")[1];
+        InputStream inputStream;
+        try {
+            MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(),
+                minioProperties.getSecretKey());
+            ObjectStat stat = minioClient.statObject(minioProperties.getBucket(), fileName);
+            inputStream = minioClient.getObject(minioProperties.getBucket(), fileName);
+            response.setContentType(stat.contentType());
+            response.setCharacterEncoding("UTF-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
+            IOUtils.copy(inputStream, response.getOutputStream());
+            inputStream.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    /**
+     * 文件下载
+     *
+     * @param response
+     * @param url
+     */
+    public byte[] getBytes(HttpServletResponse response, String url) {
+        // 从链接中得到文件名
+        String replace = url.replace(minioProperties.getBucket() + "/", "#");
+        String fileName = replace.split("#")[1];
+        InputStream inputStream;
+        byte[] bytes = new byte[0];
+        try {
+            MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(),
+                minioProperties.getSecretKey());
+            inputStream = minioClient.getObject(minioProperties.getBucket(), fileName);
+            bytes = toByteArray(inputStream);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return bytes;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/bootstrap.yml
index fb45df8..cc427c1 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/bootstrap.yml
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/bootstrap.yml
@@ -12,8 +12,8 @@
     active: ${ENV:dev}
   servlet:
     multipart:
-      max-file-size: 10MB
-      max-request-size: 10MB
+      max-file-size: 200MB
+      max-request-size: 200MB
 
 eureka:
   client:
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java
index 106753d..26ac215 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java
@@ -13,6 +13,7 @@
 import javax.annotation.Resource;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.redis.core.ValueOperations;
 import org.springframework.stereotype.Service;
@@ -54,6 +55,9 @@
 @Slf4j
 @Service
 public class LcApiServiceImpl implements LcApiService {
+
+    @Value("${langchao.url}")
+    private String host;
 
     @Resource
     private GridService gridService;
@@ -108,6 +112,7 @@
         } else {
             // 如果第一次请求浪潮的token请求,请求完成后,保存对于的token到数据库中。便于12小时内重复调用
             HttpRequest request = HttpUtil.createPost(
+                host +
                 LcApiConstants.GRID_GET_TOKEN_URL.replace("#username", name).replace("#password", password));
             HttpResponse result = request.execute();
             ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
@@ -119,7 +124,7 @@
 
     @Override
     public String getAllEventTypeList() {
-        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_EVENT_CATEGORY_URL);
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_EVENT_CATEGORY_URL);
         request.auth(getAuthToken());
         HttpResponse result = request.execute();
         return result.body();
@@ -127,7 +132,7 @@
 
     @Override
     public String submitEventRegister(EventInfo eventInfo) {
-        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_REGIST_EVENT_URL);
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_REGIST_EVENT_URL);
         request.auth(getAuthToken());
         ObjectMapper mapper = new ObjectMapper();
         try {
@@ -144,7 +149,7 @@
 
     @Override
     public R submitEventOrVisitRecordRelationFile(EventFile eventFile) {
-        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_EVENT_FILE_UPLOAD_URL);
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_EVENT_FILE_UPLOAD_URL);
         request.auth(getAuthToken());
         try {
             HttpURLConnection httpUrl = (HttpURLConnection)new URL(eventFile.getFiles()).openConnection();
@@ -166,7 +171,7 @@
 
     @Override
     public String getEventInfoById(String eventId) {
-        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_APP_EVENT_INFO_DETAIL_URL);
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_APP_EVENT_INFO_DETAIL_URL);
         request.auth(getAuthToken());
         request.form("eventId", eventId);
         HttpResponse result = request.execute();
@@ -175,7 +180,7 @@
 
     @Override
     public List<LcGridData> getGridTreeByAreaId(String areaId) {
-        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_GET_EVENT_INFO_AREA_ID_URL);
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_GET_EVENT_INFO_AREA_ID_URL);
         request.auth(getAuthToken());
         request.form("areaId", areaId);
         request.form("level", 4);
@@ -185,7 +190,9 @@
 
     @Override
     public List<LcGridData> getGridDataListByAreaId(String areaId) {
-        HttpRequest request = HttpUtil.createPost(LcApiConstants.GRID_GET_GRID_DATA_AREA_ID_URL);
+        log.info("浪潮请求url");
+        log.info(host + LcApiConstants.GRID_GET_GRID_DATA_AREA_ID_URL);
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_GET_GRID_DATA_AREA_ID_URL);
         request.auth(getAuthToken());
         request.form("areaId", areaId);
         HttpResponse result = request.execute();
@@ -195,7 +202,7 @@
     @Override
     public List<GridMemberPageListDTO> getGridMemberListByAreaIdOrName(String areaId, String param, Long pageNum,
         Long pageSize) {
-        HttpRequest request = HttpUtil.createGet(LcApiConstants.GRID_GET_GETALL_SEARCH_PAGE_URL);
+        HttpRequest request = HttpUtil.createGet(host + LcApiConstants.GRID_GET_GETALL_SEARCH_PAGE_URL);
         request.auth(getAuthToken());
         request.form("areaId", areaId);
         request.form("limit", pageSize);
@@ -262,7 +269,7 @@
 
     @Override
     public String getFlowPersonVisitRecordDetailById(String recordId) {
-        HttpRequest request = HttpUtil.createPost(LcApiConstants.VISIT_RECORD_FLOW_PERSON_DETAIL_URL);
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.VISIT_RECORD_FLOW_PERSON_DETAIL_URL);
         request.auth(getAuthToken());
         request.form("id", recordId);
         HttpResponse result = request.execute();
@@ -273,13 +280,14 @@
     public String getFlowPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO,
         Long loginUserId) {
         HttpResponse result = getHttpResponse(personVisitRecordQueryDTO, loginUserId,
+            host +
             LcApiConstants.VISIT_RECORD_FLOW_PERSON_PAGE_URL, "flowPeopleId");
         return result.body();
     }
 
     @Override
     public String uploadFlowPersonVisitRecord(LcFlowPersonVisitRecordDTO lcFlowPersonVisitRecordDTO) {
-        HttpRequest request = HttpUtil.createPost(LcApiConstants.VISIT_RECORD_FLOW_PERSON_SAVE_URL);
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.VISIT_RECORD_FLOW_PERSON_SAVE_URL);
         request.auth(getAuthToken());
         ObjectMapper mapper = new ObjectMapper();
         try {
@@ -296,7 +304,7 @@
 
     @Override
     public String uploadKeyPersonVisitRecord(LcKeyPersonVisitRecordDTO lcKeyPersonVisitRecordDTO) {
-        HttpRequest request = HttpUtil.createPost(LcApiConstants.VISIT_RECORD_KEY_PERSON_SAVE_REMOTE_URL);
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.VISIT_RECORD_KEY_PERSON_SAVE_REMOTE_URL);
         request.auth(getAuthToken());
         ObjectMapper mapper = new ObjectMapper();
         try {
@@ -313,7 +321,7 @@
 
     @Override
     public String getKeyPersonVisitRecordDetailById(String recordId) {
-        HttpRequest request = HttpUtil.createPost(LcApiConstants.VISIT_RECORD_KEY_PERSON_DETAIL_URL);
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.VISIT_RECORD_KEY_PERSON_DETAIL_URL);
         request.auth(getAuthToken());
         request.form("id", recordId);
         HttpResponse result = request.execute();
@@ -324,6 +332,7 @@
     public String getKeyPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO,
         Long loginUserId) {
         HttpResponse result = getHttpResponse(personVisitRecordQueryDTO, loginUserId,
+            host +
             LcApiConstants.VISIT_RECORD_KEY_PERSON_PAGE_URL, "keyPersonId");
         return result.body();
     }
@@ -335,7 +344,7 @@
             String lcGrid = gridService.getLcGridIdByLocal(lcEventVisitingTasksListDTO.getGridId());
             String lcGridUserId =
                 gridService.getLcUserIdByLocalUserId(lcEventVisitingTasksListDTO.getGridMember().toString());
-            R populationDetail = communityService.detailPopulation(lcEventVisitingTasksListDTO.getVisiterId());
+            R populationDetail = communityService.detailPopulation(lcEventVisitingTasksListDTO.getVisiterId(), null);
             ComMngPopulationVO comMngPopulationVO = (ComMngPopulationVO)populationDetail.getData();
             BcDictionaryItemVO diction = communityService.getByCode(DictionItemConstants.LC_CULTURE_LEVEL,
                 comMngPopulationVO.getCultureLevel().toString());
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActMicroWishOperationRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActMicroWishOperationRecordApi.java
new file mode 100644
index 0000000..7c23991
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActMicroWishOperationRecordApi.java
@@ -0,0 +1,34 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComActMicroWishOperationRecordService;
+import com.panzhihua.service_community.service.ComActMicroWishService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @auther lyq
+ * @create 2021-08-27 10:28:04
+ * @describe 前端控制器
+ */
+@RestController
+@RequestMapping("/comActMicroWishOperationRecord")
+public class ComActMicroWishOperationRecordApi {
+    @Resource
+    private ComActMicroWishOperationRecordService comActMicroWishOperationRecordService;
+
+    /**
+     * 根据心愿id查询操作记录
+     * @param id
+     * @return
+     */
+    @GetMapping("/getByWishId")
+    public R getByWishId(@RequestParam("id") Long id){
+        return comActMicroWishOperationRecordService.getByWishId(id);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveApi.java
index d309b0e..b98b028 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveApi.java
@@ -312,4 +312,14 @@
     public R registerDetailedDetailAdmin(@RequestParam("reserveRecordId") Long reserveRecordId){
         return comActReserveRecordService.registerDetailedDetailAdmin(reserveRecordId);
     }
+
+    /**
+     * 小程序查询所有进行中的预约登记
+     * @param communityId   社区id
+     * @return  社区所有进行中的预约登记列表
+     */
+    @GetMapping("/list")
+    public R list(@RequestParam("communityId") Long communityId){
+        return comActReserveService.reserveListApplets(communityId);
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSwPatrolRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSwPatrolRecordApi.java
index 70b727b..f50f731 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSwPatrolRecordApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSwPatrolRecordApi.java
@@ -65,6 +65,19 @@
     }
 
     /**
+     * 编辑巡查记录 editPatrolRecord  编辑巡查记录
+     * @param    comSwPatrolRecordEditDTO   编辑巡查记录参数
+     * @return    R  编辑结果
+     * @author txb
+     * @date 2021/9/08 17:03
+     */
+    @PostMapping("/edit")
+    @Transactional(rollbackFor = Exception.class)
+    public R editPatrolRecord(@RequestBody ComSwPatrolRecordEditDTO comSwPatrolRecordEditDTO) {
+        return comSwPatrolRecordService.editPatrolRecord(comSwPatrolRecordEditDTO);
+    }
+
+    /**
      * 根据巡查记录id查询详情
      *
      * @param patrolRecordId
@@ -96,6 +109,19 @@
     @PostMapping("/safetyWorkRecord/page")
     public R pageSafetyWorkRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
         return comSwSafetyWorkRecordService.pageSafetyWorkRecord(comSwPatrolRecordPageDTO);
+    }
+
+    /**
+     * 编辑安全工作记录 editSafetyWork  编辑安全工作记录
+     * @param    comSwSafetyWorkEditDTO   编辑安全工作记录参数
+     * @return    R  编辑结果
+     * @author txb
+     * @date 2021/9/08 17:03
+     */
+    @PostMapping("/safetyWorkRecord/edit")
+    @Transactional(rollbackFor = Exception.class)
+    public R editSafetyWork(@RequestBody ComSwSafetyWorkEditDTO comSwSafetyWorkEditDTO) {
+        return comSwSafetyWorkRecordService.editSafetyWork(comSwSafetyWorkEditDTO);
     }
 
     /**
@@ -137,6 +163,19 @@
     }
 
     /**
+     * 编辑隐患报告 editDangerReport  编辑隐患报告
+     * @param    comSwDangerReportEditDTO   编辑隐患报告参数
+     * @return    R  编辑结果
+     * @author txb
+     * @date 2021/9/08 17:03
+     */
+    @PostMapping("/dangerReport/edit")
+    @Transactional(rollbackFor = Exception.class)
+    public R editDangerReport(@RequestBody ComSwDangerReportEditDTO comSwDangerReportEditDTO) {
+        return comSwDangerReportService.editDangerReport(comSwDangerReportEditDTO);
+    }
+
+    /**
      * 根据隐患报告id查询详情
      *
      * @param dangerReportId
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommonDataApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommonDataApi.java
index d572123..45a404c 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommonDataApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommonDataApi.java
@@ -500,10 +500,40 @@
      * @return 导入结果
      */
     @Transactional(rollbackFor = Exception.class)
-    @PostMapping("/population/importLowSecurity")
+    @PostMapping("population/importLowSecurity")
     public R listSavePopulationLowSecurityExcelVO(@RequestBody List<ComMngPopulationLowSecurityExcelVO> list,
         @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId) {
         return comMngPopulationService.listSaveLowSecurityPopulation(list, communityId, userId);
+    }
+
+    /**
+     * 批量导入高龄老人  listSavePopulationElderExcelVO  批量导入高龄老人
+     * @param    list  高龄老人数据
+     * @param    communityId   社区id
+     * @return    R   导入结果
+     * @author txb
+     * @date 2021/9/01 15:03
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("population/importElder")
+    public R listSavePopulationElderExcelVO(@RequestBody List<ComMngPopulationElderExcelVO> list,
+                                     @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId){
+        return comMngPopulationService.listSaveEdlerPopulation(list, communityId, userId);
+    }
+
+    /**
+     * 批量导入养老金人员  listSavePopulationPensionExcelVO  批量导入养老金人员
+     * @param    list  养老金人员数据
+     * @param    communityId   社区id
+     * @return    R   导入结果
+     * @author txb
+     * @date 2021/9/01 15:03
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("population/importPension")
+    R listSavePopulationPensionExcelVO(@RequestBody List<ComMngPopulationPensionExcelVO> list,
+                                       @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId){
+        return comMngPopulationService.listSavePensionPopulation(list, communityId, userId);
     }
 
     /**
@@ -530,8 +560,8 @@
      * @return 实有人口详情查询结果
      */
     @PostMapping("/population/detail")
-    public R detailPopulation(@RequestParam(value = "populationId") Long populationId) {
-        return comMngPopulationService.detailPopulation(populationId);
+    public R detailPopulation(@RequestParam(value = "populationId") Long populationId, @RequestParam(value = "communityId") Long communityId) {
+        return comMngPopulationService.detailPopulation(populationId, communityId);
     }
 
     /**
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 912692f..4cff40f 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,15 +1,19 @@
 package com.panzhihua.service_community.api;
 
+import static java.util.stream.Collectors.toList;
+
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
-import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 
+import com.panzhihua.service_community.dao.ComActActEvaluateDAO;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.*;
 import org.springframework.beans.BeanUtils;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
@@ -47,11 +51,11 @@
 import com.panzhihua.common.model.dtos.community.questnaire.StatisticsSummaryDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.SystemmanagementConfigVO;
-import com.panzhihua.common.model.vos.community.ComActActRegistVO;
 import com.panzhihua.common.model.vos.community.ActivitySignVO;
 import com.panzhihua.common.model.vos.community.BatchhouseVO;
 import com.panzhihua.common.model.vos.community.ComActActEvaluateVO;
 import com.panzhihua.common.model.vos.community.ComActActPrizeVO;
+import com.panzhihua.common.model.vos.community.ComActActRegistVO;
 import com.panzhihua.common.model.vos.community.ComActActivityVO;
 import com.panzhihua.common.model.vos.community.ComActDynVO;
 import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO;
@@ -85,33 +89,8 @@
 import com.panzhihua.service_community.dao.ComActActSignDAO;
 import com.panzhihua.service_community.dao.ComEldersAuthHistoryRecordMapper;
 import com.panzhihua.service_community.dao.ComMngPopulationDAO;
-import com.panzhihua.service_community.model.dos.ComActActEvaluateDO;
-import com.panzhihua.service_community.model.dos.ComActActPrizeDO;
-import com.panzhihua.service_community.model.dos.ComActDynDO;
-import com.panzhihua.service_community.model.dos.ComActEasyPhotoDO;
-import com.panzhihua.service_community.model.dos.ComActMicroWishDO;
-import com.panzhihua.service_community.model.dos.ComEldersAuthHistoryRecordDO;
-import com.panzhihua.service_community.model.dos.ComEldersAuthUserDO;
-import com.panzhihua.service_community.model.dos.ComMngStructAreaDO;
-import com.panzhihua.service_community.model.dos.EldersAuthDO;
-import com.panzhihua.service_community.service.ComActActEvaluateService;
-import com.panzhihua.service_community.service.ComActActPrizeService;
-import com.panzhihua.service_community.service.ComActActivityService;
-import com.panzhihua.service_community.service.ComActDynService;
-import com.panzhihua.service_community.service.ComActEasyPhotoActivityService;
-import com.panzhihua.service_community.service.ComActEasyPhotoService;
-import com.panzhihua.service_community.service.ComActMessageService;
-import com.panzhihua.service_community.service.ComActMicroWishService;
-import com.panzhihua.service_community.service.ComActQuestnaireService;
-import com.panzhihua.service_community.service.ComActService;
-import com.panzhihua.service_community.service.ComEldersAuthUserService;
-import com.panzhihua.service_community.service.ComMngStructAreaDistrictService;
-import com.panzhihua.service_community.service.ComMngStructAreaService;
-import com.panzhihua.service_community.service.ComMngStructHouseService;
-import com.panzhihua.service_community.service.ComMngStructOtherBuildService;
-import com.panzhihua.service_community.service.ComMngVolunteerMngService;
-import com.panzhihua.service_community.service.EldersAuthService;
 
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.IdcardUtil;
 import lombok.extern.slf4j.Slf4j;
 
@@ -167,6 +146,12 @@
     private ComActEasyPhotoActivityService comActEasyPhotoActivityService;
     @Resource
     private ComActActEvaluateService comActActEvaluateService;
+    @Resource
+    private ComEldersAuthElderlyService comEldersAuthElderlyService;
+    @Resource
+    private ComActMicroWishOperationRecordService wishOperationRecordService;
+    @Resource
+    private ComActActEvaluateDAO comActActEvaluateDAO;
 
     /**
      * 新增社区活动
@@ -298,6 +283,7 @@
                     } else {
                         comActActivityVO1.setType(2);
                     }
+                    fillActivitySignList(id, comActActivityVO1);
                 });
                 page.setRecords(content);
             }
@@ -351,7 +337,9 @@
      */
     @PostMapping("detailactivity")
     public R detailActivity(@RequestParam("id") Long id,
-        @RequestParam(value = "userId", required = false) Long userId) {
+        @RequestParam(value = "userId", required = false) Long userId,
+                            @RequestParam(value = "pageNum",defaultValue = "1", required = false) Long pageNum,
+                            @RequestParam(value = "pageSize",defaultValue = "10", required = false) Long pageSize) {
         ComActActivityVO comActActivityVO = comActActivityService.inforActivity(id, userId);
         if (ObjectUtils.isEmpty(comActActivityVO)) {
             return R.fail("活动不存在");
@@ -369,42 +357,29 @@
             comActActivityVO.setComActActPrizeVOList(comActActPrizeVOS);
         }
         //活动评价
-        List<ComActActEvaluateDO> comActActEvaluateDOList = comActActEvaluateService
-                .list(new QueryWrapper<ComActActEvaluateDO>().lambda().eq(ComActActEvaluateDO::getActivityId, id));
-        if (!ObjectUtils.isEmpty(comActActEvaluateDOList)) {
-            List<ComActActEvaluateVO> comActActEvaluateVOList = new ArrayList<>();
-            comActActEvaluateDOList.forEach(comActActEvaluateDO -> {
-                ComActActEvaluateVO comActActEvaluateVO = new ComActActEvaluateVO();
-                BeanUtils.copyProperties(comActActEvaluateDO, comActActEvaluateVO);
-                comActActEvaluateVOList.add(comActActEvaluateVO);
-            });
-            comActActivityVO.setComActActEvaluateVOList(comActActEvaluateVOList);
-            //活动评价总数
-            comActActivityVO.setEvaluateAmount(comActActEvaluateDOList.size());
-            //当前用户对活动的评分
-            Optional.ofNullable(userId).ifPresent(currentUserId -> {
-                Optional<ComActActEvaluateDO> optional = comActActEvaluateDOList.stream()
-                        .filter(comActActEvaluateDO -> comActActEvaluateDO.getUserId().equals(currentUserId)).findFirst();
-                if (optional.isPresent()) {
-                    comActActivityVO.setMyRating(optional.get().getStarLevel());
-                }
-            });
+        IPage<ComActActEvaluateVO> comActActEvaluatePage = comActActEvaluateDAO.getEvaluateListPage(new Page(pageNum,pageSize),id);
+        comActActivityVO.setComActActEvaluateVOList(comActActEvaluatePage.getRecords());
+        //活动评价总数
+        comActActivityVO.setEvaluateAmount(comActActEvaluatePage.getTotal());
+        //当前用户对活动的评分
+        ComActActEvaluateVO userActEvaluateVO = comActActEvaluateDAO.getEvaluateListByUserId(id,userId);
+        if(userActEvaluateVO != null){
+            comActActivityVO.setMyRating(userActEvaluateVO.getStarLevel());
         }
-        //签到时间
-        Optional.ofNullable(userId).ifPresent(currentUserId -> {
-            R listSignInResult = comActActivityService.listSignInActivity(currentUserId);
-            if (R.isOk(listSignInResult) && !ObjectUtils.isEmpty(listSignInResult.getData())) {
-                Optional<ComActActRegistVO> optional = JSONArray.parseArray(JSONArray.toJSONString(listSignInResult.getData()), ComActActRegistVO.class).stream()
-                        .filter(activitySignInVO -> activitySignInVO.getActivityId().equals(id))
-                        .sorted(Comparator.comparing(ComActActRegistVO::getCreateAt).reversed()).findFirst();
-                if (optional.isPresent()) {
-                    comActActivityVO.setActivitySignInDate(optional.get().getCreateAt());
-                }
-            }
-        });
+        fillActivitySignList(id, comActActivityVO);
+        comActActivityVO.setIntegral(0);
+        return R.ok(comActActivityVO);
+    }
+
+    /**
+     * 填充活动报名名单
+     * @param activityId 活动id
+     * @param comActActivityVO 需填充VO
+     */
+    private void fillActivitySignList(Long activityId, ComActActivityVO comActActivityVO) {
         //活动报名名单
         ActivitySignVO activitySignVO = new ActivitySignVO();
-        activitySignVO.setActivityId(id);
+        activitySignVO.setActivityId(activityId);
         R r = comActActivityService.listActivitySigns(activitySignVO);
         if (R.isOk(r)) {
             List<ActivitySignVO> activitySignVOS =
@@ -416,7 +391,7 @@
                     }
                 }
                 List<ActivitySignVO> collect = activitySignVOS.stream()
-                    .filter(activitySignVO1 -> activitySignVO1.getIsVolunteer() == 1).collect(Collectors.toList());
+                    .filter(activitySignVO1 -> activitySignVO1.getIsVolunteer() == 1).collect(toList());
                 if (!ObjectUtils.isEmpty(collect)) {
                     int size = collect.size();
                     if (size >= 6) {
@@ -426,7 +401,7 @@
                     }
                 }
                 List<ActivitySignVO> collect1 = activitySignVOS.stream()
-                    .filter(activitySignVO1 -> activitySignVO1.getIsVolunteer() == 0).collect(Collectors.toList());
+                    .filter(activitySignVO1 -> activitySignVO1.getIsVolunteer() == 0).collect(toList());
                 if (!ObjectUtils.isEmpty(collect1)) {
                     int size = collect1.size();
                     if (size >= 6) {
@@ -438,8 +413,6 @@
             }
 
         }
-        comActActivityVO.setIntegral(0);
-        return R.ok(comActActivityVO);
     }
 
     /**
@@ -607,6 +580,18 @@
     }
 
     /**
+     * 获取系统预置图库  getSysPictureList
+     * @param type 图库类型
+     * @return    R   系统图库集
+     * @author txb
+     * @date 2021/8/27 13:33
+     */
+    @GetMapping("/activity/sysPicture/getList")
+    public R getSysPictureList(@RequestParam(value = "type") Integer type){
+        return comActActivityService.getSysPictureList(type);
+    }
+
+    /**
      * 新增社区动态
      *
      * @param comActDynVO
@@ -629,7 +614,7 @@
                     int size = list.size();
                     if (size == 4) {
                         List<ComActDynDO> collect = list.stream().sorted(Comparator.comparing(ComActDynDO::getCreateAt))
-                            .collect(Collectors.toList());
+                            .collect(toList());
                         ComActDynDO comActDynDO1 = collect.get(0);
                         comActDynDO1.setIsTopping(0);
                         boolean update = comActDynService.updateById(comActDynDO1);
@@ -682,7 +667,7 @@
                     int size = list.size();
                     if (size == 4) {
                         List<ComActDynDO> collect = list.stream().sorted(Comparator.comparing(ComActDynDO::getUpdateAt))
-                            .collect(Collectors.toList());
+                            .collect(toList());
                         ComActDynDO comActDynDO1 = collect.get(0);
                         comActDynDO1.setIsTopping(0);
                         boolean updateById = comActDynService.updateById(comActDynDO1);
@@ -830,6 +815,11 @@
         return comActMicroWishService.pageMicroWish(comActMicroWishVO);
     }
 
+    @PostMapping("pagemicrowish/applets")
+    public R pageMicroWishApplets(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        return comActMicroWishService.pageMicroWishApplets(comActMicroWishVO);
+    }
+
     /**
      * 心愿详情
      *
@@ -915,6 +905,8 @@
         BeanUtils.copyProperties(comActMicroWishVO, comActMicroWishDO);
         boolean save = comActMicroWishService.save(comActMicroWishDO);
         if (save) {
+            wishOperationRecordService.addOperationRecord("用户提交微心愿",comActMicroWishVO.getSponsorId()
+                    ,comActMicroWishDO.getId(), ComActMicroWishOperationRecordDO.type.ytj,"用户提交微心愿",null);
             return R.ok();
         }
         return R.fail();
@@ -2121,67 +2113,71 @@
         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());
-        }
+        long year=DateUtil.betweenYear(birthDay,DateUtil.date(),true);
+        if(authUserDO.getBigAgeId()!=null){
+            ComEldersAuthElderlyDO comEldersAuthElderlyDO=comEldersAuthElderlyService.getById(authUserDO.getBigAgeId());
+            if(comEldersAuthElderlyDO!=null&&comEldersAuthElderlyDO.getIsExist()==ComEldersAuthElderlyDO.isExist.yes&&comEldersAuthElderlyDO.getIsBigAge()==ComEldersAuthElderlyDO.isBigAge.yes&&year>=80){
+                Long elderId = authUserDO.getId();
+                boolean canReAuthThisMonth = comEldersAuthUserService.checkReAuthAgain(elderId);
+                if (!canReAuthThisMonth) {
+                    return R.fail("当月已认证,不能再次进行认证");
+                }
+                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 = "暂无";
+                }
+                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();
+            }
+            return R.fail("不满足认证条件");
+        }
+        return R.fail("未查询到高龄老人库数据");
     }
 
     /**
@@ -2318,6 +2314,20 @@
     }
 
     /**
+     * 获取首页弹窗接口
+     *
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 首页弹窗接口
+     */
+    @PostMapping("easyphoto/getUserRewards")
+    public R getUserRewards(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId) {
+        return comActEasyPhotoService.getUserReward(userId, communityId);
+    }
+
+    /**
      * 读取用户随手拍奖励
      * 
      * @param userId
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DiscussApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DiscussApi.java
index c3b9cee..9beecb3 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DiscussApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DiscussApi.java
@@ -2,6 +2,8 @@
 
 import javax.annotation.Resource;
 
+import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussDetailDTO;
+import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussPublishResultDTO;
 import org.springframework.web.bind.annotation.*;
 
 import com.panzhihua.common.model.dtos.community.*;
@@ -12,7 +14,7 @@
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
- * @description: 一起议
+ * @description: 议事投票
  * @author: huang.hongfa weixin hhf9596 qq 959656820
  * @create: 2021-01-22 14:52
  **/
@@ -24,7 +26,7 @@
     private ComActDiscussService comActDiscussService;
 
     /**
-     * 一起议-新增
+     * 议事投票-新增
      * 
      * @param comActDiscussDTO
      *            新增参数
@@ -36,19 +38,39 @@
     }
 
     /**
-     * 一起议-详情
-     * 
-     * @param id
-     *            主键
-     * @return ComActDiscussVO
+     * 议事投票-编辑
+     * @param comActDiscussDTO  请求参数
+     * @return  编辑结果
      */
-    @PostMapping("detaildiscuss")
-    public R detailDiscuss(@RequestParam("id") Long id) {
-        return comActDiscussService.detailDiscuss(id);
+    @PostMapping("editdiscuss")
+    public R editDiscuss(@RequestBody ComActDiscussDTO comActDiscussDTO) {
+        return comActDiscussService.editDiscuss(comActDiscussDTO);
     }
 
     /**
-     * 一起议-删除
+     * 议事投票-详情
+     * 
+     * @param discussDetailDTO
+     *            请求参数
+     * @return ComActDiscussVO
+     */
+    @PostMapping("detaildiscuss")
+    public R detailDiscuss(@RequestBody ComActDiscussDetailDTO discussDetailDTO) {
+        return comActDiscussService.detailDiscuss(discussDetailDTO);
+    }
+
+    /**
+     * 分页查询评论下回复列表
+     * @param discussDetailDTO  请求参数
+     * @return  回复列表
+     */
+    @PostMapping("discussCommentReplyAdmin")
+    public R discussCommentReplyAdmin(@RequestBody ComActDiscussDetailDTO discussDetailDTO) {
+        return comActDiscussService.discussCommentReplyAdmin(discussDetailDTO);
+    }
+
+    /**
+     * 议事投票-删除
      * 
      * @param id
      *            主键
@@ -60,7 +82,7 @@
     }
 
     /**
-     * 一起议-回复
+     * 议事投票-回复
      * 
      * @param comActDiscussCommentDTO
      *            评论内容
@@ -72,7 +94,7 @@
     }
 
     /**
-     * 一起议-分页查询
+     * 议事投票-分页查询
      * 
      * @param pageComActDiscussDTO
      *            查询参数
@@ -84,7 +106,19 @@
     }
 
     /**
-     * 一起议-评论-查看
+     * 议事投票-后台分页查询
+     *
+     * @param pageComActDiscussDTO
+     *            查询参数
+     * @return ComActDiscussVO
+     */
+    @PostMapping("pagediscussAdmin")
+    public R pageDiscussAdmin(@RequestBody PageComActDiscussDTO pageComActDiscussDTO) {
+        return comActDiscussService.pageDiscussAdmin(pageComActDiscussDTO);
+    }
+
+    /**
+     * 议事投票-评论-查看
      * 
      * @param id
      *            主键
@@ -96,7 +130,17 @@
     }
 
     /**
-     * 一起议-评论-置顶
+     * 议事投票评论详情
+     * @param pageComActDiscussCommentDTO   请求参数
+     * @return  议事投票详情
+     */
+    @PostMapping("detaildiscusscommentAdmin")
+    public R detailDiscusscommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
+        return comActDiscussService.detailDiscussCommentAdmin(pageComActDiscussCommentDTO);
+    }
+
+    /**
+     * 议事投票-评论-置顶
      * 
      * @param id
      *            主键
@@ -108,7 +152,7 @@
     }
 
     /**
-     * 一起议-评论-回复
+     * 议事投票-评论-回复
      * 
      * @param comActDiscussCommentDTO
      *            回复内容
@@ -120,7 +164,7 @@
     }
 
     /**
-     * 一起议-评论-分页查询
+     * 议事投票-评论-分页查询
      * 
      * @param pageComActDiscussCommentDTO
      *            分页查询参数
@@ -132,7 +176,19 @@
     }
 
     /**
-     * 一起议-分页查询 小程序
+     * 议事投票-评论-后台分页查询
+     *
+     * @param pageComActDiscussCommentDTO
+     *            分页查询参数
+     * @return ComActDiscussCommentVO
+     */
+    @PostMapping("pagediscusscommentAdmin")
+    public R pageDiscussCommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
+        return comActDiscussService.pageDiscussCommentAdmin(pageComActDiscussCommentDTO);
+    }
+
+    /**
+     * 议事投票-分页查询 小程序
      * 
      * @param pageComActDiscussDTO
      *            查询参数
@@ -144,7 +200,7 @@
     }
 
     /**
-     * 一起议-点赞、取消点赞
+     * 议事投票-点赞、取消点赞
      * 
      * @param comActDiscussUserDTO
      *            操作类型
@@ -156,7 +212,7 @@
     }
 
     /**
-     * 一起议-评论-分页查询 小程序
+     * 议事投票-评论-分页查询 小程序
      * 
      * @param pageComActDiscussCommentDTO
      *            分页参数
@@ -168,7 +224,7 @@
     }
 
     /**
-     * 一起议-详情 小程序
+     * 议事投票-详情 小程序
      * 
      * @param id
      *            主键
@@ -182,7 +238,7 @@
     }
 
     /**
-     * 一起议-投票
+     * 议事投票-投票
      * 
      * @param comActDiscussOptionUserDTO
      *            投票信息
@@ -194,7 +250,7 @@
     }
 
     /**
-     * 一起议-评论-点赞、取消点赞
+     * 议事投票-评论-点赞、取消点赞
      * 
      * @param comActDiscussUserDTO
      *            评论点赞
@@ -205,4 +261,91 @@
         return comActDiscussService.putDiscussCommentUser(comActDiscussUserDTO);
     }
 
+    /**
+     * 议事投票后台公布结果
+     * @param publishResultDTO  请求参数
+     * @return  公布结果
+     */
+    @PostMapping("publishResultAdmin")
+    public R publishResultAdmin(@RequestBody ComActDiscussPublishResultDTO publishResultDTO) {
+        return comActDiscussService.publishResultAdmin(publishResultDTO);
+    }
+
+    /**
+     * 议事投票-评论/回复删除
+     * @param id    评论/回复id
+     * @return  删除结果
+     */
+    @GetMapping("deleteDiscussCommentAdmin")
+    public R deleteDiscussCommentAdmin(@RequestParam("id") Long id) {
+        return comActDiscussService.deleteDiscussCommentAdmin(id);
+    }
+
+    /**
+     * 查询社区可发布议事投票权限配置
+     * @param communityId   社区id
+     * @return  社区可发布议事投票权限配置
+     */
+    @GetMapping("discussJurisdictionGet")
+    public R discussJurisdictionGet(@RequestParam("communityId") Long communityId,@RequestParam("userId") Long userId) {
+        return comActDiscussService.discussJurisdictionGet(communityId,userId);
+    }
+
+    /**
+     * 设置当前社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员)
+     * @param communityId   社区id
+     * @param value 需要设置的参数值
+     * @return  设置结果
+     */
+    @GetMapping("discussJurisdictionSet")
+    public R discussJurisdictionSet(@RequestParam("communityId") Long communityId,@RequestParam("value") String value) {
+        return comActDiscussService.discussJurisdictionSet(communityId,value);
+    }
+
+    /**
+     * 议事投票检测状态定时任务
+     * @return  执行结果
+     */
+    @GetMapping("timedTaskDiscussInspectStatus")
+    public R timedTaskDiscussInspectStatus() {
+        return comActDiscussService.timedTaskDiscussInspectStatus();
+    }
+
+
+    /**
+     * 一起议增加浏览量
+     * @param discussId 一起议主键id
+     */
+    @PostMapping("discuss/increase-view-num")
+    public void increaseViewNum(@RequestParam("discussId") Long discussId) {
+        comActDiscussService.increaseViewNum(discussId);
+    }
+
+    /**
+     * 公布/编辑一起议投票结果
+     * @param comActDiscussDTO
+     * @return 请求结果
+     */
+    @PostMapping("discuss/edit-result")
+    public R editDiscussResult(@RequestBody ComActDiscussDTO comActDiscussDTO) {
+        return comActDiscussService.editDiscussResult(comActDiscussDTO);
+    }
+
+    /**
+     * 定时任务每半小时执行一次将一起议浏览量写入到表中
+     */
+    @PostMapping("discuss/write-view-num")
+    public R timedTaskWriteDiscussViewNumToTable() {
+        return comActDiscussService.writeDiscussViewNumToTable();
+    }
+
+    /**
+     * 一起议获取是否有发布权
+     * @param comActDiscussDTO
+     * @return
+     */
+    @PostMapping("discuss/permissions")
+    public R getDiscussPermissions(@RequestBody ComActDiscussDTO comActDiscussDTO) {
+        return comActDiscussService.getDiscussPermissions(comActDiscussDTO);
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java
index 17cca0d..982387b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java
@@ -4,26 +4,30 @@
 
 import javax.annotation.Resource;
 
+import cn.hutool.core.util.IdcardUtil;
+import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.dtos.community.elder.ElderAuthStatisticHeaderDTO;
+import com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO;
+import com.panzhihua.common.model.dtos.community.elder.PagePensionAuthStatisticDTO;
+import com.panzhihua.common.model.dtos.community.elder.SignElderAuthStatisticDTO;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.service_community.model.dos.ComEldersAuthElderlyDO;
+import com.panzhihua.service_community.service.*;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.panzhihua.common.exceptions.ServiceException;
-import com.panzhihua.common.model.dtos.community.EldersAuthTypeQueryDTO;
-import com.panzhihua.common.model.dtos.community.PageComEldersRecordsDTO;
-import com.panzhihua.common.model.dtos.community.PageEldersAuthHistoryDTO;
-import com.panzhihua.common.model.dtos.community.PageEldersAuthRecordDTO;
 import com.panzhihua.common.model.dtos.elders.ComEldersAuthGetResultDTO;
 import com.panzhihua.common.model.dtos.elders.ComEldersAuthPageDTO;
 import com.panzhihua.common.model.dtos.elders.ComEldersAuthUserAddAppDTO;
 import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.model.vos.community.ComEldersAuthElderlyDetailsVO;
 import com.panzhihua.common.model.vos.elders.ComElderAuthUserDetailVO;
 import com.panzhihua.common.utlis.DateUtils;
 import com.panzhihua.service_community.model.dos.ComEldersAuthUserDO;
 import com.panzhihua.service_community.model.dos.EldersAuthDO;
-import com.panzhihua.service_community.service.ComEldersAuthUserService;
-import com.panzhihua.service_community.service.EldersAuthService;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -43,6 +47,14 @@
     private ComEldersAuthUserService comEldersAuthUserService;
     @Resource
     private EldersAuthService eldersAuthService;
+    @Resource
+    private ComEldersAuthElderlyService comEldersAuthElderlyService;
+    @Resource
+    private ComElderAuthRecordsService comElderAuthRecordsService;
+    @Resource
+    private ComPensionAuthRecordService comPensionAuthRecordService;
+    @Resource
+    private ComPensionAuthHistoryRecordService comPensionAuthHistoryRecordService;
 
     @PostMapping("/getAuth")
     public R getAuth(@RequestParam("authUserId") Long authUserId) {
@@ -51,12 +63,28 @@
         if (authUserDO == null) {
             return R.fail("未查询到老人信息");
         }
+
+        //判断当前提交用户是否符合认证条件
+        ComEldersAuthElderlyDO authElderlyDO = comEldersAuthElderlyService.getOne(new QueryWrapper<ComEldersAuthElderlyDO>()
+                .lambda().eq(ComEldersAuthElderlyDO::getId,authUserDO.getBigAgeId()));
+        if(authElderlyDO == null){
+            return R.fail("未查询到老人信息");
+        }
+
+        int age = IdcardUtil.getAgeByIdCard(authElderlyDO.getIdCard());
+        if(age < 80 || authElderlyDO.getIsBigAge().equals(ComEldersAuthElderlyDO.isBigAge.no)
+                || authElderlyDO.getIsExist().equals(ComEldersAuthElderlyDO.isExist.no)){
+            return R.fail("未满足认证条件");
+        }
+
         if (authUserDO.getIsAuth().equals(ComEldersAuthUserDO.isAuth.yes)) {
             List<EldersAuthDO> eldersAuthDOList = eldersAuthService.list(new QueryWrapper<EldersAuthDO>().lambda()
-                .eq(EldersAuthDO::getType, 2).ge(EldersAuthDO::getCreateAt, DateUtils.getFirstDayOfMonth()));
+                .eq(EldersAuthDO::getType, 2).eq(EldersAuthDO::getFamilyUserId,authUserId)
+                    .ge(EldersAuthDO::getCreateAt, DateUtils.getFirstDayOfMonth()));
             if (!eldersAuthDOList.isEmpty()) {
                 return R.fail("该老人已认证");
             }
+
         }
         ComElderAuthUserDetailVO authUserDetailVO = new ComElderAuthUserDetailVO();
         BeanUtils.copyProperties(authUserDO, authUserDetailVO);
@@ -144,8 +172,8 @@
      * @param eldersAuthTypeQueryDTO
      * @return
      */
-    @PostMapping("/authtype")
-    R communityElderAuthType(@RequestBody EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) {
+    @PostMapping("/authType")
+    public R elderAuthType(@RequestBody EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) {
         return eldersAuthService.communityAuthType(eldersAuthTypeQueryDTO);
     }
 
@@ -170,4 +198,323 @@
         return eldersAuthService.getAuthHistoryExport(pageEldersAuthElderlyDTO);
     }
 
+    @PostMapping("/auth/task")
+    public R timedTaskEldersAuthJobHandler() {
+        return eldersAuthService.timedTaskEldersAuthJobHandler();
+    }
+
+    /**
+     * 检测上月所有视频认证记录,取最后一条记录为认证成功记录
+     * @return  执行结果
+     */
+    @PostMapping("/auth/record/task")
+    public R timedTaskEldersRecordAuthJobHandler() {
+        return eldersAuthService.timedTaskEldersRecordAuthJobHandler();
+    }
+
+    //2021-8-30 身份认证改版(高龄老人认证管理)接口
+    /**
+     * 分页查询高龄老人认证记录  pageElderAuthRecords  分页查询高龄老人认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/authRecords/page")
+    public R pageElderAuthRecords(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
+        return comElderAuthRecordsService.pageElderAuthRecords(pageElderAuthRecordsDTO);
+    }
+
+    /**
+     * 根据高龄认证记录id查询详情 detailElderAuthRecords  根据高龄认证记录id查询详情
+     * @param    authRecordId   高龄认证记录id
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @GetMapping("/authRecords/detail")
+    public R detailElderAuthRecords(@RequestParam(value = "authRecordId") Long authRecordId) {
+        return comElderAuthRecordsService.detailElderAuthRecords(authRecordId);
+    }
+
+    /**
+     * 高龄认证审核 examineElderAuthRecords  高龄认证审核
+     * @param    comElderAuthRecordVO   高龄认证审核参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/authRecords/examine")
+    public R examineElderAuthRecords(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO) {
+        return comElderAuthRecordsService.examineElderAuthRecords(comElderAuthRecordVO);
+    }
+
+    /**
+     * 高龄认证标记 examineElderAuthRecords  高龄认证标记
+     * @param    comElderAuthRecordVO   高龄认证标记参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/authRecords/sign")
+    public R signElderAuthRecords(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO) {
+        return comElderAuthRecordsService.signElderAuthRecords(comElderAuthRecordVO);
+    }
+
+    /**
+     * 根据高龄认证记录id批量查询 getElderAuthRecordsByIds  根据高龄认证记录id批量查询
+     * @param    ids   高龄认证记录id集合
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/authRecords/getList")
+    public R getElderAuthRecordsByIds(@RequestBody List<Long> ids){
+        return comElderAuthRecordsService.getElderAuthRecordsByIds(ids);
+    }
+
+    /**
+     * 批量导入高龄老人线下认证记录  listSaveElderAuthRecordExcelVO  批量导入高龄老人线下认证记录
+     * @param    list  高龄老人线下认证记录数据
+     * @param    communityId   社区id
+     * @param    userId   登录人id
+     * @return    R   导入结果
+     * @author txb
+     * @date 2021/9/01 15:03
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("/authRecords/underLine/import")
+    public R listSaveElderAuthRecordExcelVO(@RequestBody List<ComElderAuthRecordImportExcelVO> list,
+                                     @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId){
+        return comElderAuthRecordsService.listSaveElderAuthRecordExcelVO(list, communityId, userId);
+    }
+
+    /**
+     * 导出高龄认证记录 exportElderAuthRecordsStatistic  导出高龄认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/authRecords/statistic/export")
+    public R exportElderAuthRecordsStatistic(@RequestBody PageElderAuthStatisticDTO pageElderAuthRecordsDTO){
+        return comElderAuthRecordsService.exportElderAuthRecordsStatistic(pageElderAuthRecordsDTO);
+    }
+
+    /**
+     * 分页查询养老金人员认证记录  pagePensionAuthRecords  分页查询养老金人员认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/07 14:03
+     */
+    @PostMapping("/pensionAuthRecords/page")
+    public R pagePensionAuthRecords(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
+        return comPensionAuthRecordService.pagePensionAuthRecords(pageElderAuthRecordsDTO);
+    }
+
+    /**
+     * 根据养老认证记录id查询详情 detailPensionAuthRecords  根据养老认证记录id查询详情
+     * @param    authRecordId   养老认证记录id
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/07 11:03
+     */
+    @GetMapping("/pensionAuthRecords/detail")
+    public R detailPensionAuthRecords(@RequestParam(value = "authRecordId") Long authRecordId) {
+        return comPensionAuthRecordService.detailPensionAuthRecords(authRecordId);
+    }
+
+    /**
+     * 养老认证审核 examinePensionAuthRecords  养老认证审核
+     * @param    comPensionAuthRecordVO   养老认证审核参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/07 11:03
+     */
+    @PostMapping("/pensionAuthRecords/examine")
+    public R examinePensionAuthRecords(@RequestBody ComPensionAuthRecordVO comPensionAuthRecordVO) {
+        return comPensionAuthRecordService.examinePensionAuthRecords(comPensionAuthRecordVO);
+    }
+
+    /**
+     * 养老认证标记 signPensionAuthRecords  养老认证标记
+     * @param    comPensionAuthRecordVO   养老认证标记参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/pensionAuthRecords/sign")
+    public R signPensionAuthRecords(@RequestBody ComPensionAuthRecordVO comPensionAuthRecordVO) {
+        return comPensionAuthRecordService.signPensionAuthRecords(comPensionAuthRecordVO);
+    }
+
+    /**
+     * 根据养老认证记录id批量查询 getPensionAuthRecordsByIds  根据养老认证记录id批量查询
+     * @param    ids   养老认证记录id集合
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/pensionAuthRecords/getList")
+    public R getPensionAuthRecordsByIds(@RequestBody List<Long> ids){
+        return comPensionAuthRecordService.getPensionAuthRecordsByIds(ids);
+    }
+
+    /**
+     * 批量导入养老线下认证记录  listSavePensionAuthRecordExcelVO  批量导入养老线下认证记录
+     * @param    list  养老线下认证记录数据
+     * @param    communityId   社区id
+     * @param    userId   登录人id
+     * @return    R   导入结果
+     * @author txb
+     * @date 2021/9/08 10:03
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("/pensionAuthRecords/underLine/import")
+    R listSavePensionAuthRecordExcelVO(@RequestBody List<ComPensionAuthRecordImportExcelVO> list,
+                                       @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId){
+        return comPensionAuthRecordService.listSavePensionAuthRecordExcelVO(list, communityId, userId);
+    }
+
+    /**
+     * 导出养老认证记录 exportPensionAuthRecordsStatistic  导出养老认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/pensionAuthRecords/statistic/export")
+    public R exportPensionAuthRecordsStatistic(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO){
+        return comPensionAuthRecordService.exportPensionAuthRecordsStatistic(pageElderAuthRecordsDTO);
+    }
+
+    /**
+     * 设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验) setPensionAuthType  设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验)
+     * @param    communityId   社区id
+     * @param    type         检验类型
+     * @return    R  设置结果
+     * @author txb
+     * @date 2021/9/10 16:03
+     */
+    @PutMapping("/pensionAuthRecords/authType/{type}")
+    public R setPensionAuthType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type) {
+        return comPensionAuthRecordService.setPensionAuthType(communityId, type);
+    }
+
+    /**
+     * 查询养老认证社区认证方式 setPensionAuthType  查询养老认证社区认证方式
+     * @param    eldersAuthTypeQueryDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/10 16:03
+     */
+    @PostMapping("/pensionAuthRecords/authtype")
+    public R communityPensionAuthType(@RequestBody EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) {
+        return comPensionAuthRecordService.communityPensionAuthType(eldersAuthTypeQueryDTO);
+    }
+
+    /**
+     * 定时任务每月1号0点统计高龄老人本期应该认证总人数
+     * @return  执行结果
+     */
+    @PostMapping("/authRecords/statistics")
+    public R timedTaskElderAuthStatisticsJobHandler(){
+        return comElderAuthRecordsService.timedTaskElderAuthStatisticsJobHandler();
+    }
+
+    /**
+     * 定时任务每年3月1号0点统计养老认证本期应该认证总人数
+     * @return  执行结果
+     */
+    @PostMapping("/pensionAuthRecords/statistics")
+    R timedTaskPensionAuthStatisticsJobHandler(){
+        return comPensionAuthRecordService.timedTaskPensionAuthStatisticsJobHandler();
+    }
+
+    /**
+     * 设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验)
+     * @param    communityId   社区id
+     * @param    type         检验类型
+     * @return    R  设置结果
+     * @author txb
+     * @date 2021/9/10 16:03
+     */
+    @PutMapping("/new/authType/{type}")
+    public R setAuthType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type) {
+        return eldersAuthService.setAuthType(communityId, type);
+    }
+
+    /**
+     * 查询养老认证社区认证方式 setPensionAuthType  查询养老认证社区认证方式
+     * @param    eldersAuthTypeQueryDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/10 16:03
+     */
+    @PostMapping("/new/authtype")
+    public R communityAuthType(@RequestBody EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) {
+        return eldersAuthService.getAuthType(eldersAuthTypeQueryDTO);
+    }
+
+    /**
+     * 高龄认证统计-分页查询
+     * @param pageElderAuthStatisticDTO 请求参数
+     * @return  高龄认证统计列表
+     */
+    @PostMapping("/auth/statistic/page")
+    public R pageAuthStatisticAdmin(@RequestBody PageElderAuthStatisticDTO pageElderAuthStatisticDTO) {
+        return eldersAuthService.pageAuthStatisticAdmin(pageElderAuthStatisticDTO);
+    }
+
+    /**
+     * 高龄认证统计-标记
+     * @param signElderAuthStatisticDTO 请求参数
+     * @return  标记结果
+     */
+    @PostMapping("/auth/statistic/sign")
+    public R signAuthStatisticAdmin(@RequestBody SignElderAuthStatisticDTO signElderAuthStatisticDTO) {
+        return eldersAuthService.signAuthStatisticAdmin(signElderAuthStatisticDTO);
+    }
+
+    /**
+     * 高龄认证统计-统计表头数据
+     * @param statisticHeaderDTO 请求参数
+     * @return  统计表头数据
+     */
+    @PostMapping("/auth/header/statistic")
+    public R getAuthHeaderStatisticAdmin(@RequestBody ElderAuthStatisticHeaderDTO statisticHeaderDTO) {
+        return eldersAuthService.getAuthHeaderStatisticAdmin(statisticHeaderDTO);
+    }
+
+    /**
+     * 养老认证统计-分页查询
+     * @param pensionAuthStatisticDTO   请求参数
+     * @return  养老认证统列表
+     */
+    @PostMapping("/pension/auth/statistic/page")
+    public R pagePensionAuthStatisticAdmin(@RequestBody PagePensionAuthStatisticDTO pensionAuthStatisticDTO) {
+        return comPensionAuthHistoryRecordService.pagePensionAuthStatisticAdmin(pensionAuthStatisticDTO);
+    }
+
+    /**
+     * 养老认证记标记
+     * @param signElderAuthStatisticDTO 请求参数
+     * @return  标记结果
+     */
+    @PostMapping("/pension/auth/statistic/sign")
+    public R signPensionAuthStatisticAdmin(@RequestBody SignElderAuthStatisticDTO signElderAuthStatisticDTO) {
+        return comPensionAuthHistoryRecordService.signPensionAuthStatisticAdmin(signElderAuthStatisticDTO);
+    }
+
+    /**
+     * 养老认证表头统计
+     * @param statisticHeaderDTO    请求参数
+     * @return  统计结果
+     */
+    @PostMapping("/pension/auth/header/statistic")
+    public R getPensionAuthHeaderStatisticAdmin(@RequestBody ElderAuthStatisticHeaderDTO statisticHeaderDTO) {
+        return comPensionAuthHistoryRecordService.getPensionAuthHeaderStatisticAdmin(statisticHeaderDTO);
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/IdentityAuthApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/IdentityAuthApi.java
new file mode 100644
index 0000000..f179451
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/IdentityAuthApi.java
@@ -0,0 +1,206 @@
+package com.panzhihua.service_community.api;
+
+import static com.panzhihua.common.enums.IdentityAuthMethodEnum.FACE_AUTH;
+import static com.panzhihua.common.enums.IdentityAuthTypeEnum.ELDER_AUTH;
+import static com.panzhihua.common.enums.IdentityAuthTypeEnum.PENSION_AUTH;
+import static java.util.Objects.nonNull;
+import static org.apache.commons.lang3.StringUtils.isBlank;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO;
+import com.panzhihua.common.model.dtos.community.GetIdentityEidTokenDTO;
+import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO;
+import com.panzhihua.common.model.helper.AESUtil;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.SysConfVO;
+import com.panzhihua.common.utlis.TencentUtils;
+import com.panzhihua.service_community.dao.ComElderAuthElderliesDAO;
+import com.panzhihua.service_community.dao.ComPensionAuthPensionerDAO;
+import com.panzhihua.service_community.dao.SysConfMapper;
+import com.panzhihua.service_community.model.dos.ComElderAuthElderliesDO;
+import com.panzhihua.service_community.model.dos.ComPensionAuthPensionerDO;
+import com.panzhihua.service_community.model.dos.SysConfDO;
+import com.panzhihua.service_community.service.ComElderAuthRecordsService;
+import com.panzhihua.service_community.service.ComPensionAuthRecordService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: IdentityAuthApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 身份认证相关api
+ * @author: hans
+ * @date: 2021/09/01 18:06
+ */
+@Slf4j
+@RestController
+@RequestMapping("/identity-auth")
+public class IdentityAuthApi {
+
+    private static final String ELDER_AUTH_TYPE_PREFIX = "ELDER_AUTH_TYPE_";
+    private static final String PENSION_AUTH_TYPE_PREFIX = "PENSION_AUTH_TYPE_";
+
+    @Resource
+    private ComElderAuthRecordsService comElderAuthRecordsService;
+    @Resource
+    private ComPensionAuthRecordService comPensionAuthRecordService;
+    @Resource
+    private SysConfMapper sysConfDao;
+    @Resource
+    private ComElderAuthElderliesDAO comElderAuthElderliesDAO;
+    @Resource
+    private ComPensionAuthPensionerDAO comPensionAuthPensionerDAO;
+
+    @Value("${domain.aesKey:}")
+    private String aesKey;
+
+    /**
+     * 新增身份认证
+     * @param addIdentityAuthDTO 新增身份认证请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    public R addIdentityAuth(@RequestBody AddIdentityAuthDTO addIdentityAuthDTO) {
+        String eidToken = addIdentityAuthDTO.getEidToken();
+        boolean isEidTokenBlank = isBlank(eidToken);
+        if (!Boolean.logicalXor(isEidTokenBlank, isBlank(addIdentityAuthDTO.getAuthVideo()))) {
+            return R.fail("缺少认证参数");
+        }
+        if (!isEidTokenBlank) {
+            String result = TencentUtils.getEidResult(eidToken);
+            JSONObject object = JSON.parseObject(result);
+            if (object == null) {
+                return R.fail("核验失败");
+            }
+            JSONObject textObject = object.getJSONObject("Text");
+            String code = textObject.getString("ErrCode");
+            if (!code.equals("0")) {
+                log.error("人脸核验失败,错误原因:" + textObject.toJSONString());
+                return R.fail("核验失败");
+            }
+            addIdentityAuthDTO.setAuthMethod(FACE_AUTH.getMethod());
+            addIdentityAuthDTO.setVerificationResult(object.toJSONString());
+        }
+        int authType = addIdentityAuthDTO.getAuthType().intValue();
+        if (authType == ELDER_AUTH.getType()) {
+            return comElderAuthRecordsService.addElderAuth(addIdentityAuthDTO);
+        } else if (authType == PENSION_AUTH.getType()) {
+            return comPensionAuthRecordService.addPensionAuth(addIdentityAuthDTO);
+        } else {
+            return R.fail("请核对需要认证的类型");
+        }
+    }
+
+    /**
+     * 分页查询身份认证记录
+     * @param pageIdentityAuthRecordDTO 分页查询身份认证记录参数
+     * @return 身份认证记录列表
+     */
+    @PostMapping("/record/page")
+    public R queryRecordWithPage(@RequestBody PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO) {
+        int authType = pageIdentityAuthRecordDTO.getAuthType().intValue();
+        if (authType == ELDER_AUTH.getType()) {
+            return comElderAuthRecordsService.queryRecordWithPage(pageIdentityAuthRecordDTO);
+        } else if (authType == PENSION_AUTH.getType()) {
+            return comPensionAuthRecordService.queryRecordWithPage(pageIdentityAuthRecordDTO);
+        } else {
+            return R.fail("请核对需要查询的身份认证类型");
+        }
+    }
+
+    /**
+     * 获取身份认证详情
+     * @param authType 认证类型
+     * @param identityAuthId 认证id
+     * @return 认证记录详情
+     */
+    @GetMapping("/detail")
+    public R retrieveIdentityAuthDetail(@RequestParam("authType") Integer authType,
+                                        @RequestParam("identityAuthId") Long identityAuthId) {
+        if (authType.intValue() == ELDER_AUTH.getType()) {
+            return comElderAuthRecordsService.retrieveElderAuthDetail(identityAuthId);
+        } else if (authType.intValue() == PENSION_AUTH.getType()) {
+            return comPensionAuthRecordService.retrievePensionAuthDetail(identityAuthId);
+        } else {
+            return R.fail("请核对认证类型");
+        }
+    }
+
+    /**
+     * 获取身份认证方式
+     * @param communityId
+     * @param identityAuthType
+     * @return 认证方式
+     */
+    @GetMapping("/mode")
+    public R getIdentityAuthMode(@RequestParam(value = "communityId") Long communityId,
+                                 @RequestParam(value = "identityAuthType") Integer identityAuthType) {
+        String identityCode;
+        if (identityAuthType.intValue() == ELDER_AUTH.getType()) {
+            //高龄认证
+            identityCode = ELDER_AUTH_TYPE_PREFIX + communityId;
+        } else if (identityAuthType.intValue() == PENSION_AUTH.getType()) {
+            //养老认证
+            identityCode = PENSION_AUTH_TYPE_PREFIX + communityId;
+        } else {
+            return R.fail("身份认证类型错误");
+        }
+        SysConfDO sysConfDO = sysConfDao.selectOne(new QueryWrapper<SysConfDO>()
+                .lambda().eq(SysConfDO::getCode, identityCode).eq(SysConfDO::getCommunityId, communityId));
+        if (nonNull(sysConfDO)) {
+            SysConfVO sysConfVO = new SysConfVO();
+            BeanUtils.copyProperties(sysConfDO, sysConfVO);
+            return R.ok(sysConfVO.getValue());
+        }
+        return R.fail("获取失败!");
+    }
+
+    /**
+     * 获取身份认证人脸核验token
+     * @param getIdentityEidTokenDTO
+     * @return token
+     */
+    @PostMapping("/getEidToken")
+    public R getEidToken(@RequestBody GetIdentityEidTokenDTO getIdentityEidTokenDTO) {
+        int isExist;
+        String idCard;
+        try {
+            idCard = AESUtil.encrypt128(getIdentityEidTokenDTO.getIdCard(), aesKey);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("加密失败【{}】", e.getMessage());
+            return R.fail("认证失败,请重新尝试");
+        }
+        if (getIdentityEidTokenDTO.getAuthType().intValue() == ELDER_AUTH.getType()) {
+            //高龄认证
+            isExist = comElderAuthElderliesDAO.selectCount(new QueryWrapper<ComElderAuthElderliesDO>()
+                    .lambda().eq(ComElderAuthElderliesDO::getName, getIdentityEidTokenDTO.getName())
+                    .eq(ComElderAuthElderliesDO::getIdCard, idCard));
+        } else if (getIdentityEidTokenDTO.getAuthType().intValue() == PENSION_AUTH.getType()) {
+            //养老认证
+            isExist = comPensionAuthPensionerDAO.selectCount(new QueryWrapper<ComPensionAuthPensionerDO>()
+                    .lambda().eq(ComPensionAuthPensionerDO::getName, getIdentityEidTokenDTO.getName())
+                    .eq(ComPensionAuthPensionerDO::getIdCard, idCard));
+        } else {
+            return R.fail("请核对身份认证类型");
+        }
+        if (isExist <= 0) {
+            return R.fail("该人员未在社区报道无法认证");
+        }
+        // 获取EidToken
+        return R.ok(TencentUtils.getEidToken(getIdentityEidTokenDTO.getName(), getIdentityEidTokenDTO.getIdCard()));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/NeighborApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/NeighborApi.java
index ce8de0a..e179c8a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/NeighborApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/NeighborApi.java
@@ -340,8 +340,28 @@
      * @return 邻里圈话题列表
      */
     @GetMapping("getNeighborTopicByApp")
-    public R getNeighborTopicByApp(@RequestParam("communityId") Long communityId) {
-        return comActNeighborCircleTopicService.getNeighborTopicByApp(communityId);
+    public R getNeighborTopicByApp(@RequestParam("communityId") Long communityId,@RequestParam("isZero") Integer isZero,@RequestParam("name") String name) {
+        return comActNeighborCircleTopicService.getNeighborTopicByApp(communityId,isZero,name);
+    }
+
+    /**
+     * 小程序-用户新增话题
+     * @param circleTopicAppDTO 请求参数
+     * @return  新增结果
+     */
+    @PostMapping("addNeighborTopicByApp")
+    public R addNeighborTopicByApp(@RequestBody AddNeighborCircleTopicAppDTO circleTopicAppDTO){
+        return comActNeighborCircleTopicService.addNeighborTopicByApp(circleTopicAppDTO);
+    }
+
+    /**
+     * 小程序-删除邻里圈
+     * @param circleTopicAppDTO 请求参数
+     * @return  删除结果
+     */
+    @PostMapping("deleteNeighborByApp")
+    public R deleteNeighborByApp(@RequestBody DeleteNeighborCircleAppDTO circleTopicAppDTO){
+        return comActNeighborCircleService.deleteNeighborByApp(circleTopicAppDTO);
     }
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/SysConfApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/SysConfApi.java
index 59ab1e9..6cbe36b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/SysConfApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/SysConfApi.java
@@ -33,4 +33,39 @@
         }
         return R.ok(value);
     }
+
+    /**
+     * 根据系统code以及社区id查询配置表value值
+     *
+     * @param key         系统code
+     * @param communityId 社区id
+     * @return 系统配置value值
+     */
+    @GetMapping("getSysConfValue")
+    public R getSysConfValue(@RequestParam("key") String key,@RequestParam("communityId") Long communityId) {
+        return sysConfService.getSysConfValue(key,communityId);
+    }
+
+    /**
+     * 新增系统code配置数据
+     *
+     * @param key         系统code
+     * @param communityId 社区id
+     * @return 新增结果
+     */
+    @GetMapping("addSysConfValue")
+    public R addSysConfValue(@RequestParam("key") String key,@RequestParam("communityId") Long communityId,@RequestParam("name") String name,@RequestParam("value") String value) {
+        return sysConfService.addSysConfValue(key,communityId,name,value);
+    }
+
+    /**
+     * 编辑系统配置
+     * @param communityId   社区id
+     * @param status    配置值
+     * @return  编辑结果
+     */
+    @GetMapping("editSysConfValue")
+    public R editSysConfValue(@RequestParam("communityId") Long communityId,@RequestParam("status") Integer status) {
+        return sysConfService.editSysConfValue(communityId,status);
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/WorkGuideApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/WorkGuideApi.java
index 43a1e23..6ac5e74 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/WorkGuideApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/WorkGuideApi.java
@@ -2,7 +2,13 @@
 
 import javax.annotation.Resource;
 
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideClassifyVO;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.service_community.service.ComActWorkGuideClassifyService;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import com.panzhihua.common.controller.BaseController;
@@ -23,6 +29,8 @@
 public class WorkGuideApi extends BaseController {
     @Resource
     private ComActWorkGuideService workGuideService;
+    @Resource
+    private ComActWorkGuideClassifyService comActWorkGuideClassifyService;
 
     /**
      * 办事指南_新增
@@ -85,4 +93,71 @@
         return workGuideService.delectWorkGuide(workGuideId);
     }
 
+    /**
+     * 分页查询办事执念-分类管理 addWorkGuideClassify  分页查询办事执念-分类管理
+     * @param    comActWorkGuideClassifyVO   查询参数
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @PostMapping("workGuide/classify/apage")
+    public R pageWorkGuideClassify(@RequestBody ComActWorkGuideClassifyVO comActWorkGuideClassifyVO) {
+        return comActWorkGuideClassifyService.pageWorkGuideClassify(comActWorkGuideClassifyVO);
+    }
+
+    /**
+     * 办事执念-分类管理新增或修改  addWorkGuideClassify  办事执念-分类管理新增或修改
+     * @param    comActWorkGuideClassifyVO   新增或修改参数
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @PostMapping("workGuide/classify/add")
+    public R addWorkGuideClassify(@RequestBody ComActWorkGuideClassifyVO comActWorkGuideClassifyVO) {
+        return comActWorkGuideClassifyService.addWorkGuideClassify(comActWorkGuideClassifyVO);
+    }
+
+    /**
+     * 办事执念-分类管理删除  addWorkGuideClassify  办事执念-分类管理删除
+     * @param    workGuideClassifyId    办事执念-分类管理id
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @GetMapping("workGuide/classify/delete")
+    public R deleteWorkGuideClassify(@RequestParam("workGuideClassifyId") Long workGuideClassifyId) {
+        return comActWorkGuideClassifyService.deleteWorkGuideClassify(workGuideClassifyId);
+    }
+
+    /**
+     * 办事指南-分类管理列表查询  getWorkGuideClassifyList  办事指南-分类管理列表查询
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @GetMapping("workGuide/classify/getList")
+    public R getWorkGuideClassifyList() {
+        return comActWorkGuideClassifyService.getWorkGuideClassifyList();
+    }
+
+    /**
+     * 办事指南列表-按分类查询
+     * @param pageActWorkGuideDTO   请求参数
+     * @return  办事指南分类列表
+     */
+    @PostMapping("listworkguide")
+    public R listWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO) {
+        return workGuideService.listWorkGuide(pageActWorkGuideDTO);
+    }
+
+    /**
+     * 根据办事指南分类id查询办事指南列表
+     * @param classifyId   办事指南分类id
+     * @return  办事指南列表数据
+     */
+    @GetMapping("listworkguide/classify")
+    public R listWorkGuideByClassifyId(@RequestParam("classifyId") Long classifyId) {
+        return workGuideService.listWorkGuideByClassifyId(classifyId);
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActEvaluateDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActEvaluateDAO.java
index f2885d6..e740e0e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActEvaluateDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActEvaluateDAO.java
@@ -28,4 +28,20 @@
 
     List<ComActActEvaluateExcelVO> getEvaluateLists(@Param("comActActEvaluateVO") ComActActEvaluateVO comActActEvaluateVO);
 
+    /**
+     * 分页查询活动评价列表
+     * @param page  分页参数
+     * @param activityId    活动id
+     * @return  活动评价列表
+     */
+    IPage<ComActActEvaluateVO> getEvaluateListPage(Page page, @Param("activityId") Long activityId);
+
+    /**
+     * 查询某活动的用户评价
+     * @param activityId    活动id
+     * @param userId    用户id
+     * @return  用户评价记录
+     */
+    ComActActEvaluateVO getEvaluateListByUserId(@Param("activityId") Long activityId,@Param("userId") Long userId);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java
index 14e39f5..5a3d820 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java
@@ -38,12 +38,13 @@
     // " </if> " +
     // " </where>" +
     // "</script>")
-    @Select("<script> " + "SELECT  " + "a.id, " + "a.activity_name, " + "u.`name` sponsorName, " + "a.activity_addr, "
-        + "a.`status`, " + "a.publish_at, " + "a.begin_at, " + "a.cover, " + "a.end_at, " + "a.volunteer_max, "
+    @Select("<script> " + "SELECT  " + "a.id, " + "a.activity_name, " + "u.`name` sponsorName, "
+        + "a.activity_addr, " + "a.aattend_people,"
+        + "a.`status`, " + "a.is_qr_code, " + "a.publish_at, " + "a.begin_at, " + "a.cover, " + "a.end_at, " + "a.volunteer_max, "
         + "count(if(s.is_volunteer=1,s.id,null))volunteer_now, "
         + "count(if(s.is_volunteer=0,s.id,null))participant_now, " + "a.participant_max, " + "a.sign_up_begin, "
         + "a.sign_up_end, " + "ca.name as communityName  " + "FROM " + "com_act_activity a  "
-        + "join sys_user u on a.sponsor_id=u.user_id " + "left join com_act_act_sign s on a.id=s.activity_id  "
+        + "left join sys_user u on a.sponsor_id=u.user_id " + "left join com_act_act_sign s on a.id=s.activity_id  "
         + "left join com_act ca on a.community_id=ca.community_id  " + " where 1=1 " +
 
         "<if test='comActActivityVO.choice == 0 '>" + "AND a.community_id=#{comActActivityVO.communityId} " + " </if> "
@@ -67,7 +68,7 @@
     @Select("SELECT  " + "u.name sponsorName, " + "ca.name communityName, "
         + "count(if(s.is_volunteer=1,s.id,null))volunteer_now, "
         + "count(if(s.is_volunteer=0,s.id,null))participant_now, " + "a.*  " + "FROM  " + "com_act_activity a  "
-        + "join sys_user u on a.sponsor_id=u.user_id  " + "left join com_act_act_sign s on a.id=s.activity_id  "
+        + "left join sys_user u on a.sponsor_id=u.user_id  " + "left join com_act_act_sign s on a.id=s.activity_id  "
         + "left join com_act ca on a.community_id=ca.community_id  " + "where a.id=#{id}  " + " group by a.id ")
     ComActActivityVO inforActivity(Long id);
 
@@ -94,19 +95,19 @@
         + "</foreach> " + "</script>")
     int updateIdBatch(@Param("longs") List<Long> longs);
 
-    @Update("update com_act_activity set `status`=2 where `status`=1 and TIMESTAMPDIFF(MINUTE,SYSDATE(),publish_at)<=0")
+    @Update("update com_act_activity set `status`=3 where `status`=1 and TIMESTAMPDIFF(MINUTE,SYSDATE(),publish_at)<=0")
     int updateStatusToNotBegin();
 
     @Update("update com_act_activity set `status`=3 where `status`=2 and TIMESTAMPDIFF(MINUTE,SYSDATE(),sign_up_begin)<=0")
     int updateStatusToBeginSign();
 
-    @Update("update com_act_activity set `status`=5 where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),sign_up_end)<=0")
+    @Update("update com_act_activity set `status`=5 where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),end_at)<=0")
     int updateStatusToBeginActiveOrEnd();
 
     @Select("<script> " + "select t.* from ( " + "SELECT  " + "a.id, " + "a.activity_name, " + "u.`name` sponsorName, "
         + "a.activity_addr, " + "a.participant_max, " + "count(if(s.is_volunteer=1,null,s.id))participant_now, "
         + "a.volunteer_max, " + "count(if(s.is_volunteer=1,s.id,null))volunteer_now, " + "a.`status`, "
-        + "a.publish_at, " + "a.begin_at, " + "a.end_at, " + "a.sign_up_begin, " + "a.sign_up_end " + "FROM "
+        + "a.publish_at, " + "a.is_qr_code, " + "a.begin_at, " + "a.end_at, " + "a.sign_up_begin, " + "a.sign_up_end " + "FROM "
         + " com_act_activity a  " + " LEFT JOIN sys_user u on a.sponsor_id=u.user_id "
         + " LEFT JOIN com_act_act_sign s on a.id=s.activity_id " + "WHERE "
         + "  a.`status` = 1 and a.community_id=#{comActActivityVO.communityId} "
@@ -118,7 +119,7 @@
         + " </if> " + "group by a.id " + "  " + " union all " + "select t1.* from ( " + "  " + " SELECT  " + "a.id, "
         + "a.activity_name, " + "u.`name` sponsorName, " + "a.activity_addr, " + "a.participant_max, "
         + "count(if(s.is_volunteer=1,null,s.id))participant_now, " + "a.volunteer_max, "
-        + "count(if(s.is_volunteer=1,s.id,null))volunteer_now, " + "a.`status`, " + "a.publish_at, " + "a.begin_at, "
+        + "count(if(s.is_volunteer=1,s.id,null))volunteer_now, " + "a.`status`, " + "a.publish_at, " + "a.is_qr_code, " + "a.begin_at, "
         + "a.end_at, " + "a.sign_up_begin, " + "a.sign_up_end " + "FROM " + " com_act_activity a  "
         + " LEFT JOIN sys_user u on a.sponsor_id=u.user_id " + " LEFT JOIN com_act_act_sign s on a.id=s.activity_id "
         + "WHERE " + "  a.`status` != 1 and a.community_id=#{comActActivityVO.communityId} "
@@ -131,7 +132,7 @@
     IPage<ComActActivityVO> pageActivityCommunityBack(Page page,
         @Param("comActActivityVO") ComActActivityVO comActActivityVO);
 
-    @Select("select id from com_act_activity where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),sign_up_end)<=0")
+    @Select("select id from com_act_activity where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),end_at)<=0")
     List<Long> getActivityEndIds();
 
     @Update("update com_act_activity set `status`=4 where `status`=3 and TIMESTAMPDIFF(MINUTE,SYSDATE(),sign_up_end)<=0")
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentDAO.java
index c3da43f..729aa49 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentDAO.java
@@ -2,7 +2,11 @@
 
 import java.util.List;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.PageComActDiscussCommentDTO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -27,29 +31,43 @@
 //            " </if> " +
 //            " </where>" +
 //            "</script>")
-    @Select("" +
-            "SELECT\n" +
-            "u.`name` userName,\n" +
-            "IFNULL(u.`nick_name`,'社区管理员') as userNickName,\n" +
-            "u.`image_url`,\n" +
-            "u.phone,\n" +
-            "c.`comment`,\n" +
-            "c.`parent_id`,\n" +
-            "c.`is_author`,\n" +
-            "c.`is_topping`,\n" +
-            "COUNT( cu.id ) num,\n" +
-            "c.create_at,\n" +
-            "c.id \n" +
-            "FROM\n" +
-            "com_act_discuss_comment c\n" +
-            "JOIN sys_user u ON c.user_id = u.user_id\n" +
-            "LEFT JOIN com_act_discuss_comment_user cu on c.id=cu.disscuss_comment_id\n" +
-            "WHERE\n" +
-            "FIND_IN_SET(\n" +
-            "\tc.id,\n" +
-            "getChildren ( #{id} )) and c.parent_id !=0 \n" +
-            "GROUP BY c.id\n" +
-            "ORDER BY\n" +
-            "create_at desc")
-    List<ComActDiscussCommentVO> selectChilds(Long id);
+//    @Select("" +
+//            "SELECT\n" +
+//            "u.`name` userName,\n" +
+//            "IFNULL(u.`nick_name`,'社区管理员') as userNickName,\n" +
+//            "u.`image_url`,\n" +
+//            "u.phone,\n" +
+//            "c.`comment`,\n" +
+//            "c.`parent_id`,\n" +
+//            "c.`is_author`,\n" +
+//            "c.`is_topping`,\n" +
+//            "COUNT( cu.id ) num,\n" +
+//            "c.create_at,\n" +
+//            "c.id \n" +
+//            "FROM\n" +
+//            "com_act_discuss_comment c\n" +
+//            "JOIN sys_user u ON c.user_id = u.user_id\n" +
+//            "LEFT JOIN com_act_discuss_comment_user cu on c.id=cu.disscuss_comment_id\n" +
+//            "WHERE\n" +
+//            "FIND_IN_SET(\n" +
+//            "\tc.id,\n" +
+//            "getChildren ( #{id} )) and c.parent_id !=0 \n" +
+//            "GROUP BY c.id\n" +
+//            "ORDER BY\n" +
+//            "create_at desc")
+
+    /**
+     * 获取子评论
+     * @param parentId
+     * @return
+     */
+    List<ComActDiscussCommentVO> selectChilds(@Param("parentId") Long parentId);
+
+    /**
+     * 该评论下所有回复内容
+     * @param page  分页参数
+     * @param id    评论id
+     * @return  回复列表
+     */
+    IPage<ComActDiscussCommentVO> getDiscussCommentList(Page page, @Param("id") Long id);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java
index 2bf6d04..bd5c558 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java
@@ -1,5 +1,6 @@
 package com.panzhihua.service_community.dao;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -43,18 +44,21 @@
     @Select("select type,name,phone,image_url,nick_name from sys_user where user_id=#{userId}")
     LoginUserInfoVO selectUserByUserId(Long userId);
 
-    @Select("<script> " + "select t.* from (" + "SELECT " + "d.id, " + "d.`discuss_subject`, " + "d.type, "
-        + "COUNT( DISTINCT c.id ) commentNum, " + "u.name userName, " + "u.nick_name userNickName, " + "d.create_at  "
-        + "FROM " + "com_act_discuss d " + "JOIN sys_user u ON d.user_id = u.user_id "
-        + "LEFT JOIN com_act_discuss_comment c ON d.id = c.discuss_id  "
-        + " where d.community_id=#{pageComActDiscussDTO.communityId}"
-        + "<if test='pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != &quot;&quot;'>"
-        + " and d.`discuss_subject` LIKE concat( #{pageComActDiscussDTO.subject}, '%' )  " + " </if> "
-        + "<if test='pageComActDiscussDTO.begin != null '>" + "AND d.create_at BETWEEN #{pageComActDiscussDTO.begin}  "
-        + "AND #{pageComActDiscussDTO.end}  " + " </if> " + "GROUP BY " + "d.id" + ")t order by t.create_at desc "
-        + "</script>")
+//    @Select("<script> " + "select t.* from (" + "SELECT " + "d.id, " + "d.`discuss_subject`, " + "d.type, "
+//        + "COUNT( DISTINCT c.id ) commentNum, " + "u.name userName, " + "u.nick_name userNickName, " + "d.create_at  "
+//        + "FROM " + "com_act_discuss d " + "JOIN sys_user u ON d.user_id = u.user_id "
+//        + "LEFT JOIN com_act_discuss_comment c ON d.id = c.discuss_id  "
+//        + " where d.community_id=#{pageComActDiscussDTO.communityId}"
+//        + "<if test='pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != &quot;&quot;'>"
+//        + " and d.`discuss_subject` LIKE concat( #{pageComActDiscussDTO.subject}, '%' )  " + " </if> "
+//        + "<if test='pageComActDiscussDTO.begin != null '>" + "AND d.create_at BETWEEN #{pageComActDiscussDTO.begin}  "
+//        + "AND #{pageComActDiscussDTO.end}  " + " </if> " + "GROUP BY " + "d.id" + ")t order by t.create_at desc "
+//        + "</script>")
     IPage<ComActDiscussVO> pageDiscuss(Page page,
         @Param("pageComActDiscussDTO") PageComActDiscussDTO pageComActDiscussDTO);
+
+    IPage<ComActDiscussVO> pageDiscussAdmin(Page page,
+                                       @Param("pageComActDiscussDTO") PageComActDiscussDTO pageComActDiscussDTO);
 
     @Select("<script> " + "select * from (" + "SELECT " + "u.`name` userName, " + "u.nick_name userNickName, "
         + "u.phone, " + "c.`comment`, " + "c.`parent_id`, " + "COUNT(DISTINCT  cu.id ) num, " + "c.create_at, "
@@ -71,44 +75,69 @@
     IPage<ComActDiscussCommentVO> pageDiscussComment(Page page,
         @Param("pageComActDiscussCommentDTO") PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
 
-    @Select("<script> " + "select t.* from (" + "SELECT " + "d.id, " + "d.vote_title, "
-        + "if(d.address is null or d.address='null',a.name,d.address )address, " + "d.photo_pah, "
-        + "d.`discuss_subject`, " + "d.type, " + "u.type as userType, " + "COUNT( DISTINCT c.id ) commentNum, "
-        + "COUNT( DISTINCT du.id ) signNum, " + "if(u.type=1,u.name,a.name) userName, "
-        + "if(u.type=1,u.nick_name,a.name) userNickName, " + "<if test='pageComActDiscussDTO.loginUserId != null '>"
-        + "if(du.id is not null,1,0) haveSign, " + "if(ou.id is not null,1,0) haveVote, " + " </if> " + "u.image_url, "
-        + "d.create_at  " + "FROM " + "com_act_discuss d " + "JOIN sys_user u ON d.user_id = u.user_id "
-        + "JOIN com_act a ON d.community_id = a.community_id "
-        + "LEFT JOIN com_act_discuss_comment c ON d.id = c.discuss_id  "
-        + "LEFT JOIN com_act_discuss_option do ON d.id = do.discuss_id  "
-        + "LEFT JOIN com_act_discuss_user du ON d.id = du.discuss_id  "
-        + "<if test='pageComActDiscussDTO.loginUserId != null '>"
-        + "LEFT JOIN com_act_discuss_option_user ou on do.id=ou.discuss_option_id and ou.user_id=#{pageComActDiscussDTO.loginUserId} "
-        + " </if> " + " where d.community_id=#{pageComActDiscussDTO.communityId}"
-        + "<if test='pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != &quot;&quot;'>"
-        + " and d.`discuss_subject` LIKE concat( #{pageComActDiscussDTO.subject}, '%' )  " + " </if> "
-        + "<if test='pageComActDiscussDTO.userId != null and pageComActDiscussDTO.userId !=0 '>"
-        + " and d.`user_id` = #{pageComActDiscussDTO.userId}  " + " </if> "
-        + "<if test='pageComActDiscussDTO.begin != null '>" + "AND d.create_at BETWEEN #{pageComActDiscussDTO.begin}  "
-        + "AND #{pageComActDiscussDTO.end}  " + " </if> " + "GROUP BY " + "d.id" + ")t order by t.create_at desc "
-        + "</script>")
+    /**
+     * 议事投票-评论-后台分页查询
+     *
+     * @param pageComActDiscussCommentDTO
+     *            分页查询参数
+     * @return ComActDiscussCommentVO
+     */
+    IPage<ComActDiscussCommentVO> pageDiscussCommentAdmin(Page page,
+                                                     @Param("pageComActDiscussCommentDTO") PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 默认查询评论下两条回复信息
+     * @param commentId 评论id
+     * @return  回复列表
+     */
+    List<ComActDiscussCommentVO> getDiscussCommentReplyList(@Param("commentId") Long commentId);
+
+
+//    @Select("<script> " + "select t.* from (" + "SELECT " + "d.id, " + "d.vote_title, "
+//        + "if(d.address is null or d.address='null',a.name,d.address )address, " + "d.photo_pah, "
+//        + "d.`discuss_subject`, " + "d.type, " + "d.end_time, " + "d.status, " + "d.views_num, " + "d.join_num, "
+//        + "d.fabulous_num as signNum, " + "d.comment_num as commentNum, " + "d.release_at, " + "u.type as userType, "
+//        + "if(u.type=1,u.name,a.name) userName, "
+//        + "if(u.type=1,u.nick_name,a.name) userNickName, " + "<if test='pageComActDiscussDTO.loginUserId != null '>"
+//        + "if(du.id is not null,1,0) haveSign, " + "if(ou.id is not null,1,0) haveVote, " + " </if> " + "u.image_url, "
+//        + "d.create_at  " + "FROM " + "com_act_discuss d " + "JOIN sys_user u ON d.user_id = u.user_id "
+//        + "JOIN com_act a ON d.community_id = a.community_id "
+//        + "LEFT JOIN com_act_discuss_option do ON d.id = do.discuss_id  "
+//        + "LEFT JOIN com_act_discuss_user du ON d.id = du.discuss_id  "
+//        + "<if test='pageComActDiscussDTO.loginUserId != null '>"
+//        + "LEFT JOIN com_act_discuss_option_user ou on do.id=ou.discuss_option_id and ou.user_id=#{pageComActDiscussDTO.loginUserId} "
+//        + " </if> " + " where d.community_id=#{pageComActDiscussDTO.communityId}" + " and d.is_del = 2"
+//        + "<if test='pageComActDiscussDTO.type != null '>"
+//        + " and d.`type` = #{pageComActDiscussDTO.type}  " + " </if> "
+//        + "<if test='pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != &quot;&quot;'>"
+//        + " and d.`discuss_subject` LIKE concat( #{pageComActDiscussDTO.subject}, '%' )  " + " </if> "
+//        + "<if test='pageComActDiscussDTO.userId != null and pageComActDiscussDTO.userId !=0 '>"
+//        + " and d.`user_id` = #{pageComActDiscussDTO.userId}  " + " </if> "
+//        + "<if test='pageComActDiscussDTO.begin != null '>" + "AND d.create_at BETWEEN #{pageComActDiscussDTO.begin}  "
+//        + "AND #{pageComActDiscussDTO.end}  " + " </if> "
+//        + "<if test='pageComActDiscussDTO.displayStatus != null and pageComActDiscussDTO.displayStatus == 1'>"
+//        + " and d.`end_time` &gt; now() " + " </if> "
+//        + "<if test='pageComActDiscussDTO.displayStatus != null and pageComActDiscussDTO.displayStatus == 2'>"
+//        + " and d.`end_time` &lt; now() " + " </if> "
+//        + "GROUP BY " + "d.id" + ")t order by t.create_at desc "
+//        + "</script>")
     IPage<ComActDiscussVO> pageDiscussApplets(Page page,
         @Param("pageComActDiscussDTO") PageComActDiscussDTO pageComActDiscussDTO);
 
-    @Select("<script> " + "select * from (" + "SELECT " + "u.`name` userName, " + "IFNULL(u.`nick_name`,'社区管理员') as userNickName, "
-        + "u.`image_url`, " + "u.phone, " + "u.type as userType, " + "c.`comment`, " + "c.`parent_id`, "
-        + "c.`is_author`, " + "c.`is_topping`, " + "COUNT( cu.id ) num, " + "c.create_at, " + "c.id  " + "FROM "
-        + "com_act_discuss_comment c " + "JOIN sys_user u ON c.user_id = u.user_id  "
-        + "JOIN com_act_discuss d ON c.discuss_id = d.id  "
-        + "<if test='pageComActDiscussCommentDTO.name != null and pageComActDiscussCommentDTO.name.trim() != &quot;&quot;'>"
-        + "AND u.`name` LIKE concat( #{pageComActDiscussCommentDTO.name}, '%' )  " + " </if> "
-        + "<if test='pageComActDiscussCommentDTO.account != null and pageComActDiscussCommentDTO.account.trim() != &quot;&quot;'>"
-        + "AND u.phone LIKE concat( #{pageComActDiscussCommentDTO.account}, '%' ) " + " </if> "
-        + "LEFT JOIN com_act_discuss_comment_user cu ON c.id = cu.disscuss_comment_id  "
-        + " where c.discuss_id=#{pageComActDiscussCommentDTO.id} and parent_id=0 "
-        + "<if test='pageComActDiscussCommentDTO.comment != null and pageComActDiscussCommentDTO.comment.trim() != &quot;&quot;'>"
-        + " and c.`comment` LIKE concat( '%', #{pageComActDiscussCommentDTO.comment" + "}, '%' )  " + " </if> "
-        + "GROUP BY " + "c.id " + ")t order by t.is_topping desc , t.create_at desc" + "</script>")
+//    @Select("<script> " + "select * from (" + "SELECT " + "u.`name` userName, " + "IFNULL(u.`nick_name`,'社区管理员') as userNickName, "
+//        + "u.`image_url`, " + "u.phone, " + "u.type as userType, " + "c.`comment`, " + "c.`parent_id`, "
+//        + "c.`is_author`, " + "c.`is_topping`, " + "COUNT( cu.id ) num, " + "c.create_at, " + "c.id  " + "FROM "
+//        + "com_act_discuss_comment c " + "JOIN sys_user u ON c.user_id = u.user_id  "
+//        + "JOIN com_act_discuss d ON c.discuss_id = d.id  "
+//        + "<if test='pageComActDiscussCommentDTO.name != null and pageComActDiscussCommentDTO.name.trim() != &quot;&quot;'>"
+//        + "AND u.`name` LIKE concat( #{pageComActDiscussCommentDTO.name}, '%' )  " + " </if> "
+//        + "<if test='pageComActDiscussCommentDTO.account != null and pageComActDiscussCommentDTO.account.trim() != &quot;&quot;'>"
+//        + "AND u.phone LIKE concat( #{pageComActDiscussCommentDTO.account}, '%' ) " + " </if> "
+//        + "LEFT JOIN com_act_discuss_comment_user cu ON c.id = cu.disscuss_comment_id  "
+//        + " where c.discuss_id=#{pageComActDiscussCommentDTO.id} and parent_id=0 and c.is_del = 2"
+//        + "<if test='pageComActDiscussCommentDTO.comment != null and pageComActDiscussCommentDTO.comment.trim() != &quot;&quot;'>"
+//        + " and c.`comment` LIKE concat( '%', #{pageComActDiscussCommentDTO.comment" + "}, '%' )  " + " </if> "
+//        + "GROUP BY " + "c.id " + ")t order by t.is_topping desc , t.create_at desc" + "</script>")
     IPage<ComActDiscussCommentVO> pageDiscussCommentApplets(Page page,
         @Param("pageComActDiscussCommentDTO") PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
 
@@ -155,4 +184,39 @@
         + ",( SELECT count( id ) FROM com_act_discuss_option_user WHERE discuss_option_id = c.id ) AS num " + " FROM "
         + " com_act_discuss_option AS c " + " WHERE c.discuss_id = #{discussId}" + " ORDER BY " + " num DESC")
     List<ComActDiscussOptionVO> getScreenDiscussOptionList(@Param("discussId") Long discussId);
+
+    /**
+     * 添加议事投票评论数
+     * @param discussId 议事投票
+     * @param num   添加数量
+     */
+    void addCommentCount(@Param("discussId") Long discussId,@Param("num") Integer num);
+
+    /**
+     * 更新一起议主题状态
+     * @param discussId
+     * @param status
+     */
+    void updateStatusById(@Param("discussId") Long discussId, @Param("status") int status);
+
+    /**
+     * 增加评论总数和参与讨论总数
+     * @param discussId 一起议主键id
+     * @param isFirstComment 是否首次参与
+     */
+    void incrCommentAndJoinNumById(@Param("discussId") Long discussId, @Param("isFirstComment") boolean isFirstComment);
+
+    /**
+     * 一起议点赞/取消点赞 增加/减少点赞总数
+     * @param discussId 一起议主键id
+     * @param isIncr 是否是新增
+     */
+    void incrOrDecrFabulousNumByType(@Param("discussId") Long discussId, @Param("isIncr") Boolean isIncr);
+
+    /**
+     * 批量更新浏览量
+     * @param needDealMap id-viewNum参数合集
+     * @return
+     */
+    int batchUpdateViewNum(@Param("needDealMap") HashMap<Long, Integer> needDealMap);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionDAO.java
index c9251b3..01c7a2e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionDAO.java
@@ -1,9 +1,13 @@
 package com.panzhihua.service_community.dao;
 
+import com.panzhihua.common.model.vos.community.ComActDiscussOptionVO;
 import org.apache.ibatis.annotations.Mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.panzhihua.service_community.model.dos.ComActDiscussOptionDO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -23,4 +27,6 @@
     // " </if> " +
     // " </where>" +
     // "</script>")
+
+    List<ComActDiscussOptionVO> getDiscussOptionList(@Param("discussId") Long discussId);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionUserDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionUserDAO.java
index a074860..091898f 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionUserDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionUserDAO.java
@@ -1,11 +1,14 @@
 package com.panzhihua.service_community.dao;
 
+import com.panzhihua.common.model.vos.community.ComActDiscussOptionUserVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.panzhihua.service_community.model.dos.ComActDiscussOptionUserDO;
+
+import java.util.List;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -32,4 +35,33 @@
 
     @Select("select count(id) from com_act_discuss_option_user where discuss_option_id = #{discussOptionId} and user_id = #{userId}")
     int selectHaveVotes(@Param("discussOptionId") Long discussOptionId, @Param("userId") Long userId);
+
+    /**
+     * 查询用户当天当前投票栏目下已投次数
+     * @param discussId 一起议主键id
+     * @param userId 用户id
+     * @return 总数
+     */
+    int selectVotedVotesInToday(@Param("discussId") Long discussId, @Param("userId") Long userId);
+
+    /**
+     * 查询当前投票主题下的记录 最多6条用于展示
+     * @param discussId 一起议主键id
+     * @return
+     */
+    List<ComActDiscussOptionUserVO> selectVotedRecords(@Param("discussId") Long discussId);
+
+    /**
+     * 查询当前投票主题参与人数
+     * @param discussId 一起议主键id
+     * @return
+     */
+    int selectVotedPersonNum(@Param("discussId") Long discussId);
+
+    /**
+     * 批量插入投票记录
+     * @param comActDiscussOptionUserDOList
+     * @return
+     */
+    int batchInsert(@Param("comActDiscussOptionUserDOList") List<ComActDiscussOptionUserDO> comActDiscussOptionUserDOList);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoDAO.java
index b4f3910..8324a6b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoDAO.java
@@ -176,6 +176,7 @@
             "p.id, " +
             "p.sponsor_id, " +
             "p.feedback_at, " +
+            "p.is_publicity, " +
             "p.examine_at, " +
             "p.create_at, " +
             "u.`name` sponsorName, " +
@@ -185,6 +186,7 @@
             "u.`image_url`, " +
             "u.phone, " +
             "p.detail, " +
+            "p.lng_lat, " +
             "p.is_need_feed_back, " +
             "p.examine_at, " +
             "p.status, " +
@@ -248,6 +250,7 @@
             "count(DISTINCT c.id)commentNum, " +
             "u.image_url, " +
             "p.happen_addr, " +
+            "p.addr_remark, " +
             "su.`name` handler_name, " +
             "p.`status`, " +
             "p.`is_hide`, " +
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishDAO.java
index 3d648c0..a193c72 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishDAO.java
@@ -1,13 +1,5 @@
 package com.panzhihua.service_community.dao;
 
-import java.util.List;
-import java.util.Map;
-
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -16,6 +8,13 @@
 import com.panzhihua.common.model.vos.community.TodoEventsVO;
 import com.panzhihua.common.model.vos.community.screen.work.MicroListVO;
 import com.panzhihua.service_community.model.dos.ComActMicroWishDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -26,88 +25,205 @@
 @Mapper
 public interface ComActMicroWishDAO extends BaseMapper<ComActMicroWishDO> {
 
-    @Select("<script> " + "SELECT " + "w.id, " + "u.name sponsor_name, " + "u.nick_name userNickName, "
-        + "u.image_url , " + "w.sponsor_phone, " + "w.wish_name, " + "w.`status`, " + "w.`feedback_at`, "
-        + "w.`examine_at`, " + "w.`distribution_at`, " + "w.`evaluate_at`, " + "w.`photo_path_list`, "
-        + "count(wu.id)star_num, " + "w.`detail`, " + "w.form, " + "w.reject_reason, " + "su.`name` responsible_name, "
-        + "w.score, " + "w.create_at  " + "FROM " + "com_act_micro_wish w "
-        + "left join com_act_micro_wish_user wu on w.id=wu.micro_wish_id "
-        + "JOIN sys_user u ON w.sponsor_id = u.user_id  "
-        + "<if test='comActMicroWishVO.sponsorName != null and comActMicroWishVO.sponsorName.trim() != &quot;&quot;'>"
-        + "AND u.name like concat(#{comActMicroWishVO.sponsorName},'%')   " + " </if> "
-        + "<if test='comActMicroWishVO.responsibleName == null or comActMicroWishVO.responsibleName.trim() == &quot;&quot;'>"
-        + "LEFT JOIN com_pb_service_team su ON w.responsible_id = su.id  " + " </if> "
-        + "<if test='comActMicroWishVO.responsibleName != null and comActMicroWishVO.responsibleName.trim() != &quot;&quot;'>"
-        + " JOIN com_pb_service_team su ON w.responsible_id = su.id  "
-        + "AND su.`name` like concat(#{comActMicroWishVO.responsibleName},'%')   " + " </if> " + " <where>"
-        + "<if test='comActMicroWishVO.communityId != null and comActMicroWishVO.communityId != 0'>"
-        + " and w.community_id=#{comActMicroWishVO.communityId}  " + " </if> "
-        + "<if test='comActMicroWishVO.sponsorPhone != null and comActMicroWishVO.sponsorPhone.trim() != &quot;&quot;'>"
-        + "AND w.sponsor_phone like concat(#{comActMicroWishVO.sponsorPhone},'%')   " + " </if> "
-        + "<if test='comActMicroWishVO.status != null and comActMicroWishVO.status!=0 and comActMicroWishVO.status!=3 and comActMicroWishVO.isPageMyWish==null'>"
-        + "AND w.`status` = #{comActMicroWishVO.status}  " + " </if> "
-        + "<if test='comActMicroWishVO.status == 3  and comActMicroWishVO.isPageMyWish==null'>" + "AND w.`status` = 3 "
-        + " </if> "
-        + "<if test='comActMicroWishVO.status != null and comActMicroWishVO.status!=0 and comActMicroWishVO.isPageMyWish!=null and comActMicroWishVO.status==1'>"
-        + "AND w.`status` =1  " + " </if> "
-        + "<if test='comActMicroWishVO.status != null and comActMicroWishVO.status==3  and comActMicroWishVO.isPageMyWish!=null '>"
-        + "AND w.`status` in (2, 3)  " + " </if> " + "<if test='comActMicroWishVO.createBegin != null '>"
-        + "AND w.create_at BETWEEN #{comActMicroWishVO.createBegin}  " + "AND #{comActMicroWishVO.createEnd}"
-        + " </if> " + "<if test='comActMicroWishVO.isApplets != null and comActMicroWishVO.isApplets != 0'>"
-        + "AND w.status  in (3, 5, 6)  " + " </if> "
-        + "<if test='comActMicroWishVO.userId != null and comActMicroWishVO.userId != 0'>"
-        + "AND w.sponsor_id  =#{comActMicroWishVO.userId}  " + " </if> "
-        + "<if test='comActMicroWishVO.backUserId != null and comActMicroWishVO.backUserId != 0 and  comActMicroWishVO.status==3 '>"
-        + "AND w.responsible_id  =#{comActMicroWishVO.backUserId}  " + " </if> "
-        + "<if test='comActMicroWishVO.backUserId != null and comActMicroWishVO.backUserId != 0 and  comActMicroWishVO.status==0 '>"
-        + "and (w.status in(1,2,4,5,6) or (w.status=3 and w.responsible_id  =#{comActMicroWishVO.backUserId})) "
-        + " </if> " + " </where>" + " group by w.id   " + "ORDER BY  w.create_at desc " + "</script>")
+    @Select("<script> " +
+            "SELECT " +
+            "w.id, " +
+            "u.name sponsor_name, " +
+            "u.nick_name userNickName, " +
+            "u.image_url , " +
+            "w.sponsor_phone, " +
+            "w.wish_name, " +
+            "w.`status`, " +
+            "w.`feedback_at`, " +
+            "w.`examine_at`, " +
+            "w.`distribution_at`, " +
+            "w.`evaluate_at`, " +
+            "w.`photo_path_list`, " +
+            "count(wu.id)star_num, " +
+            "w.`detail`, " +
+            "w.form, " +
+            "w.reject_reason, " +
+            "su1.`name` responsible_name, " +
+            "w.score, " +
+            "w.img_width, " +
+            "w.finish_at, " +
+            "w.aim_num, " +
+            "w.img_height, " +
+            "w.create_at  " +
+            "FROM " +
+            "com_act_micro_wish w " +
+            "left join com_act_micro_wish_user wu on w.id=wu.micro_wish_id "+
+            "left JOIN sys_user u ON w.sponsor_id = u.user_id  " +
+            "<if test='comActMicroWishVO.sponsorName != null and comActMicroWishVO.sponsorName.trim() != &quot;&quot;'>" +
+            "AND u.name like concat(#{comActMicroWishVO.sponsorName},'%')   " +
+            " </if> " +
+            "<if test='comActMicroWishVO.responsibleName == null or comActMicroWishVO.responsibleName.trim() == &quot;&quot;'>" +
+            "LEFT JOIN sys_user su1 ON w.responsible_id = su1.user_id  " +
+            " </if> " +
+            "<if test='comActMicroWishVO.responsibleName != null and comActMicroWishVO.responsibleName.trim() != &quot;&quot;'>" +
+            " JOIN sys_user su1 ON w.responsible_id = su1.user_id  " +
+            "AND su1.`name` like concat(#{comActMicroWishVO.responsibleName},'%')   " +
+            " </if> " +
+            " <where>" +
+            "<if test='comActMicroWishVO.communityId != null and comActMicroWishVO.communityId != 0'>" +
+            " and w.community_id=#{comActMicroWishVO.communityId}  " +
+            " </if> " +
+            "<if test='comActMicroWishVO.sponsorPhone != null and comActMicroWishVO.sponsorPhone.trim() != &quot;&quot;'>" +
+            "AND w.sponsor_phone like concat(#{comActMicroWishVO.sponsorPhone},'%')   " +
+            " </if> " +
+            "<if test='comActMicroWishVO.status != null and comActMicroWishVO.status!=0 and comActMicroWishVO.status!=3 and comActMicroWishVO.isPageMyWish==null'>" +
+            "AND w.`status` = #{comActMicroWishVO.status}  " +
+            " </if> " +
+            "<if test='comActMicroWishVO.status == 3  and comActMicroWishVO.isPageMyWish==null'>" +
+            "AND w.`status` in (2,3) " +
+            " </if> " +
+            "<if test='comActMicroWishVO.status != null and comActMicroWishVO.status!=0 and comActMicroWishVO.isPageMyWish!=null and comActMicroWishVO.status==1'>" +
+            "AND w.`status` =1  " +
+            " </if> " +
+            "<if test='comActMicroWishVO.status != null and comActMicroWishVO.status==3  and comActMicroWishVO.isPageMyWish!=null '>" +
+            "AND w.`status` in (2, 3)  " +
+            " </if> " +
+            "<if test='comActMicroWishVO.createBegin != null '>" +
+            "AND w.create_at BETWEEN #{comActMicroWishVO.createBegin}  " +
+            "AND #{comActMicroWishVO.createEnd}" +
+            " </if> " +
+            "<if test='comActMicroWishVO.isApplets != null and comActMicroWishVO.isApplets != 0 and comActMicroWishVO.status != null and comActMicroWishVO.status != 7'>" +
+            "AND w.status  in (3, 5, 6)  " +
+            " </if> " +
+            "<if test='comActMicroWishVO.userId != null and comActMicroWishVO.userId != 0'>" +
+            "AND w.sponsor_id  =#{comActMicroWishVO.userId}  " +
+            " </if> " +
+            "<if test='comActMicroWishVO.backUserId != null and comActMicroWishVO.backUserId != 0 and  comActMicroWishVO.status==3 '>" +
+            "AND w.responsible_id  =#{comActMicroWishVO.backUserId}  " +
+            " </if> " +
+            "<if test='comActMicroWishVO.backUserId != null and comActMicroWishVO.backUserId != 0 and  comActMicroWishVO.status==0 '>" +
+            "and (w.status in(1,2,4,5,6) or (w.status=3 and w.responsible_id  =#{comActMicroWishVO.backUserId})) " +
+            " </if> " +
+            " </where>" +
+            " group by w.id   "+
+            "ORDER BY  w.create_at desc "+
+            "</script>")
     IPage<ComActMicroWishVO> pageMicroWish(Page page, @Param("comActMicroWishVO") ComActMicroWishVO comActMicroWishVO);
 
-    @Select("SELECT " + "w.id, " + "u.name sponsor_name, " + "u.nick_name userNickName, " + "w.create_at, "
-        + "u.image_url, " + "w.sponsor_phone, " + "w.`status`, " + "w.`sponsor_id`, " + "w.wish_name, "
-        + "count(wu.id)starNum, " + "w.detail, " + "w.photo_path_list, " + "su.`name` responsible_name, " + "w.form, "
-        + "w.reject_reason, " + "w.examine_at, " + "w.finish, " + "w.finish_photo_path_list, " + "w.finish_at, "
-        + "w.score, " + "w.feedback, " + "w.feedback_at, " + "w.feedback_photo_path_list, " + "w.distribution_at, "
-        + "w.evaluate_at, " + "w.evaluate  " + "FROM " + "com_act_micro_wish w "
-        + "JOIN sys_user u ON w.sponsor_id = u.user_id "
-        + "LEFT JOIN com_pb_service_team su ON w.responsible_id = su.id  "
-        + "LEFT JOIN com_act_micro_wish_user wu ON w.id = wu.micro_wish_id  " + "WHERE " + "w.id =#{id}"
-        + " group by w.id " + "order by w.create_at desc")
+    IPage<ComActMicroWishVO> pageMicroWishApplets(Page page, @Param("comActMicroWishVO") ComActMicroWishVO comActMicroWishVO);
+    @Select("SELECT " +
+            "w.id, " +
+            "u.name sponsor_name, " +
+            "u.nick_name userNickName, " +
+            "w.create_at, " +
+            "w.aim_num, " +
+            "u.image_url, " +
+            "w.sponsor_phone, " +
+            "w.`status`, " +
+            "w.`sponsor_id`, " +
+            "w.wish_name, " +
+            "count(wu.id)starNum, " +
+            "w.detail, " +
+            "w.photo_path_list, " +
+            "su.`name` responsible_name, " +
+            "w.form, " +
+            "w.reject_reason, " +
+            "w.community_id, " +
+            "w.examine_at, " +
+            "w.finish, " +
+            "w.finish_photo_path_list, " +
+            "w.finish_at, " +
+            "w.score, " +
+            "w.feedback, " +
+            "w.feedback_at, " +
+            "w.feedback_photo_path_list, " +
+            "w.distribution_at, " +
+            "w.evaluate_at, " +
+            "w.img_width, " +
+            "w.img_height, " +
+            "w.evaluate  " +
+            "FROM " +
+            "com_act_micro_wish w " +
+            "LEFT JOIN sys_user u ON w.sponsor_id = u.user_id " +
+            "LEFT JOIN com_pb_service_team su ON w.responsible_id = su.id  " +
+            "LEFT JOIN com_act_micro_wish_user wu ON w.id = wu.micro_wish_id  " +
+            "WHERE " +
+            "w.id =#{id}"+
+            " group by w.id " +
+            "order by w.create_at desc"
+    )
     ComActMicroWishVO detailMicroWish(Long id);
-
-    @Select("SELECT " + "'2' type " + "FROM " + "com_act_micro_wish w  " + "WHERE "
-        + "w.community_id = #{communityId}  " + "AND w.`status` = 1 " + " " + "union all  " + " " + "SELECT "
-        + "'2' type " + "FROM " + " com_act_micro_wish w  " + "WHERE " + " w.community_id = #{communityId}  "
-        + " AND w.`status` = 3  " + " AND w.form = 1  " + " AND w.responsible_id = #{userId}  " + "GROUP BY "
-        + " w.community_id ")
+    @Select("SELECT " +
+            "'2' type " +
+            "FROM " +
+            "com_act_micro_wish w  " +
+            "WHERE " +
+            "w.community_id = #{communityId}  " +
+            "AND w.`status` = 1 " +
+            " " +
+            "union all  " +
+            " " +
+            "SELECT " +
+            "'2' type " +
+            "FROM " +
+            " com_act_micro_wish w  " +
+            "WHERE " +
+            " w.community_id = #{communityId}  " +
+            " AND w.`status` = 3  " +
+            " AND w.form = 1  " +
+            " AND w.responsible_id = #{userId}  " +
+            "GROUP BY " +
+            " w.community_id ")
     List<TodoEventsVO> selectNeedToDo(@Param("communityId") Long communityId, @Param("userId") Long userId);
 
-    @Update("update com_act_micro_wish set `status`=6, evaluate_at=now() where `status`=5 and TIMESTAMPDIFF(HOUR, feedback_at, SYSDATE())>=72")
+    @Update("update com_act_micro_wish set `status`=6, evaluate_at=now() where `status`=5 and TIMESTAMPDIFF(HOUR, finish_at, SYSDATE())>=72")
     int updateStatusAutoConfirm();
 
-    @Select("SELECT COUNT(id) AS completedNum,"
-        + "(SELECT COUNT(id) FROM com_act_micro_wish WHERE community_id = #{communityId} AND (status =1 OR status =2 OR status = 3 OR status = 5)) AS willNum ,"
-        + "(SELECT COUNT(id) FROM com_act_micro_wish WHERE community_id = #{communityId} AND (status =1 OR status =2 OR status = 3 OR status = 5 OR status = 6) AND create_at LIKE CONCAT(#{nowDate},'%')) AS currentNum "
-        + "FROM com_act_micro_wish WHERE community_id = #{communityId} AND status = 6 ")
-    Map<String, Long> countByCommunityId(@Param("communityId") Long communityId, @Param("nowDate") String nowDate);
+    @Select("select id from com_act_micro_wish where `status`=5 and TIMESTAMPDIFF(HOUR, feedback_at, SYSDATE())>=72 ")
+    List<Long> getWishAutoConfirmIds();
+
+    @Select("SELECT COUNT(id) AS completedNum," +
+            "(SELECT COUNT(id) FROM com_act_micro_wish WHERE community_id = #{communityId} AND (status =1 OR status =2 OR status = 3 OR status = 5)) AS willNum ," +
+            "(SELECT COUNT(id) FROM com_act_micro_wish WHERE community_id = #{communityId} AND (status =1 OR status =2 OR status = 3 OR status = 5 OR status = 6) AND create_at LIKE CONCAT(#{nowDate},'%')) AS currentNum " +
+            "FROM com_act_micro_wish WHERE community_id = #{communityId} AND status = 6 ")
+    Map<String, Long> countByCommunityId(@Param("communityId") Long communityId,@Param("nowDate") String nowDate);
 
     @Select("SELECT photo_path_list FROM com_act_micro_wish WHERE community_id = #{communityId} AND (status =1 OR status =2 OR status = 3 OR status = 5 OR status = 6) ORDER BY create_at DESC limit #{pageSize}")
-    List<String> getAllImgs(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+    List<String> getAllImgs(@Param("communityId") Long communityId,@Param("pageSize") Integer pageSize);
 
-    @Select("<script> " + "SELECT " + " camw.id, " + " su.`name` AS userName, " + " camw.sponsor_id, "
-        + " su.image_url, " + " su.phone, " + " camw.`status`, " + " camw.create_at, " + " camw.wish_name, "
-        + " camw.finish, " + " camw.finish_photo_path_list, " + " camw.form, " + " camw.evaluate_at, "
-        + " su1.name as responsibleName, " + " camw.score, " + " camw.distribution_at, " + " camw.detail, "
-        + " camw.photo_path_list  " + "FROM " + " com_act_micro_wish AS camw "
-        + " LEFT JOIN sys_user AS su ON su.user_id = camw.sponsor_id "
-        + " LEFT JOIN com_pb_service_team AS su1 ON su1.id = camw.responsible_id " + " <where> "
-        + "<if test='microListDTO.status != null'>" + "AND camw.`status` =#{microListDTO.status}  " + " </if> "
-        + "<if test='microListDTO.communityId != null'>" + "AND camw.community_id =#{microListDTO.communityId}  "
-        + " </if> " + "<if test='microListDTO.startTime!=null and microListDTO.startTime != &quot;&quot;'>"
-        + " AND DATE_FORMAT(camw.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{microListDTO.startTime} " + " </if> "
-        + "<if test='microListDTO.endTime!=null and microListDTO.endTime != &quot;&quot;'>"
-        + " AND DATE_FORMAT(camw.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{microListDTO.endTime} " + " </if> "
-        + " </where>" + "ORDER BY  camw.create_at desc " + " </script>")
+    @Select("<script> " +
+            "SELECT " +
+            " camw.id, " +
+            " su.`name` AS userName, " +
+            " camw.sponsor_id, " +
+            " su.image_url, " +
+            " su.phone, " +
+            " camw.`status`, " +
+            " camw.create_at, " +
+            " camw.wish_name, " +
+            " camw.finish, " +
+            " camw.finish_photo_path_list, " +
+            " camw.form, " +
+            " camw.evaluate_at, " +
+            " su1.name as responsibleName, " +
+            " camw.score, " +
+            " camw.distribution_at, " +
+            " camw.detail, " +
+            " camw.photo_path_list  " +
+            "FROM " +
+            " com_act_micro_wish AS camw " +
+            " LEFT JOIN sys_user AS su ON su.user_id = camw.sponsor_id " +
+            " LEFT JOIN com_pb_service_team AS su1 ON su1.id = camw.responsible_id " +
+            " <where> " +
+            "<if test='microListDTO.status != null'>" +
+            "AND camw.`status` =#{microListDTO.status}  " +
+            " </if> " +
+            "<if test='microListDTO.communityId != null'>" +
+            "AND camw.community_id =#{microListDTO.communityId}  " +
+            " </if> " +
+            "<if test='microListDTO.startTime!=null and microListDTO.startTime != &quot;&quot;'>" +
+            " AND DATE_FORMAT(camw.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{microListDTO.startTime} " +
+            " </if> " +
+            "<if test='microListDTO.endTime!=null and microListDTO.endTime != &quot;&quot;'>" +
+            " AND DATE_FORMAT(camw.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{microListDTO.endTime} " +
+            " </if> " +
+            " </where>" +
+            "ORDER BY  camw.create_at desc "+
+            " </script>")
     IPage<MicroListVO> getScreenMicroList(Page page, @Param("microListDTO") ScreenMicroListDTO microListDTO);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishFeedbackMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishFeedbackMapper.java
new file mode 100644
index 0000000..5bd79c4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishFeedbackMapper.java
@@ -0,0 +1,23 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.common.model.vos.community.ComActMicroWishFeedbackVO;
+import com.panzhihua.service_community.model.dos.ComActMicroWishFeedbackDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-08-26 14:26:50
+ * @describe mapper类
+ */
+@Mapper
+public interface ComActMicroWishFeedbackMapper extends BaseMapper<ComActMicroWishFeedbackDO> {
+    /**
+     * 根据心愿Id查询反馈列表
+     * @param id
+     * @return
+     */
+    List<ComActMicroWishFeedbackVO> selectByWishId(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishOperationRecordMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishOperationRecordMapper.java
new file mode 100644
index 0000000..39da319
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishOperationRecordMapper.java
@@ -0,0 +1,31 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.common.model.vos.community.ComActMicroWishOperationRecordVO;
+import com.panzhihua.common.model.vos.community.ComActMicroWishVO;
+import com.panzhihua.service_community.model.dos.ComActMicroWishOperationRecordDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-08-27 10:28:04
+ * @describe mapper类
+ */
+@Mapper
+public interface ComActMicroWishOperationRecordMapper extends BaseMapper<ComActMicroWishOperationRecordDO> {
+    /**
+     * 根据心愿Id查询操作记录
+     * @param id
+     * @return
+     */
+    List<ComActMicroWishOperationRecordVO> getByWishId(Long id);
+
+    /**
+     * 查询下一个Id数组
+     * @param comActMicroWishVO
+     * @return
+     */
+    List<Long> selectId(ComActMicroWishVO comActMicroWishVO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishUserDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishUserDAO.java
index 064a053..7f12a59 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishUserDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishUserDAO.java
@@ -1,9 +1,10 @@
 package com.panzhihua.service_community.dao;
 
-import org.apache.ibatis.annotations.Mapper;
-
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.panzhihua.service_community.model.dos.ComActMicroWishUserDO;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -12,4 +13,6 @@
  * @create: 2020-12-10 16:19
  **/
 @Mapper
-public interface ComActMicroWishUserDAO extends BaseMapper<ComActMicroWishUserDO> {}
+public interface ComActMicroWishUserDAO extends BaseMapper<ComActMicroWishUserDO> {
+    List<Long> select(Integer id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleDAO.java
index 2cb0ac5..a6c0b7f 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleDAO.java
@@ -29,49 +29,23 @@
 @Mapper
 public interface ComActNeighborCircleDAO extends BaseMapper<ComActNeighborCircleDO> {
 
-    @Select("<script> " + "SELECT " + "canc.id," + "canc.release_content," + "canc.release_images,"
-        + "canc.comment_num," + "canc.fabulous_num," + "canc.forward_num," + "canc.views_num," + "canc.is_boutique,"
-        + "canc.create_at," + "canc.reply_at," + "canc.last_comment_num," + "canc.last_fabulous_num,"
-        + "canc.last_views_num," + "canc.type," + "canc.topic_id," + "su.nick_name as name," + "su.community_id,"
-        + "canct.name as topicName," + "su.image_url as headUrl " + " FROM " + " com_act_neighbor_circle AS canc"
-        + " left join sys_user as su on su.user_id = canc.release_id "
-        + " left join com_act_neighbor_circle_topic as canct on canct.id = canc.topic_id "
-        + " where canc.status = 2 and canc.community_id = #{neighborCircleAppDTO.communityId} "
-        + "<if test='neighborCircleAppDTO.topicId != null '>" + " and canc.topic_id = #{neighborCircleAppDTO.topicId}  "
-        + " </if> " + "<if test='neighborCircleAppDTO.type != null and neighborCircleAppDTO.type == 1'>"
-        + " order by (canc.last_views_num + canc.last_comment_num + canc.last_fabulous_num) desc " + " </if> "
-        + "<if test='neighborCircleAppDTO.type != null and neighborCircleAppDTO.type == 2'>"
-        + " order by canc.create_at desc " + " </if> "
-        + "<if test='neighborCircleAppDTO.type != null and neighborCircleAppDTO.type == 3'>"
-        + " order by (canc.views_num + canc.comment_num + canc.fabulous_num) desc " + " </if> " + " </script>")
-    IPage<ComActNeighborCircleAppVO> pageNeighborByApp(Page page,
-        @Param("neighborCircleAppDTO") ComActNeighborCircleAppDTO neighborCircleAppDTO);
+
+    /**
+     * 分页查询邻里圈列表
+     * @param neighborCircleAppDTO  请求参数
+     * @return  邻里圈列表
+     */
+    IPage<ComActNeighborCircleAppVO> pageNeighborByApp(Page page, @Param("neighborCircleAppDTO") ComActNeighborCircleAppDTO neighborCircleAppDTO);
 
     @Select("<script> " + "select canc.id,su.nick_name as name,su.image_url as headUrl,canc.release_content "
-        + ",canc.release_images,canc.comment_num,canc.fabulous_num,canc.forward_num,canc.views_num,canct.name as topicName "
+        + ",canc.release_images,canc.comment_num,canc.fabulous_num,canc.forward_num,canc.views_num,canct.name as topicName,canc.refuse_reason "
         + ",canc.is_boutique,canc.create_at,canc.reply_at,su.community_id,canc.type from com_act_neighbor_circle as canc "
         + " left join sys_user as su on su.user_id = canc.release_id  "
-        + " left join com_act_neighbor_circle_topic as canct on canct.id = canc.topic_id where canc.id = #{circleId}"
+        + " left join com_act_neighbor_circle_topic as canct on canct.id = canc.topic_id where canc.id = #{circleId} and canc.is_del = 2"
         + " </script>")
     ComActNeighborCircleDetailAppVO neighborDetailByApp(@Param("circleId") Long circleId);
 
-    @Select("<script> \n" + "SELECT\n" + "nc.*,\n"
-        + "u.`nick_name` AS releaseName,u.image_url,canct.`name` as topicName ,u.`type` as userType\n"
-        + ",u.name as communityName\n" + "FROM\n" + "com_act_neighbor_circle nc\n"
-        + "LEFT JOIN sys_user u ON nc.release_id = u.user_id \n"
-        + "LEFT JOIN com_act_neighbor_circle_topic as canct ON canct.id = nc.topic_id \n" + "<where>"
-        + "nc.community_id = #{neighborCircleAdminDTO.communityId}  \n"
-        + "<if test='neighborCircleAdminDTO.releaseContent != null and neighborCircleAdminDTO.releaseContent != &quot;&quot;'>"
-        + "and nc.release_content like concat('%',#{neighborCircleAdminDTO.releaseContent},'%')  \n" + " </if> "
-        + "<if test='neighborCircleAdminDTO.topicName != null and neighborCircleAdminDTO.topicName != &quot;&quot;'>"
-        + "and canct.`name` = #{neighborCircleAdminDTO.topicName}  " + " </if> "
-        + "<if test='neighborCircleAdminDTO.startAt != null and neighborCircleAdminDTO.endAt !=null '>"
-        + "and nc.create_at between #{neighborCircleAdminDTO.startAt} and #{neighborCircleAdminDTO.endAt}  \n"
-        + " </if> " + "<if test='neighborCircleAdminDTO.status != null '>"
-        + "and nc.status = #{neighborCircleAdminDTO.status}  \n" + " </if> " + "</where>" + "order by "
-        + "case when nc.`status`=1 then 0 else 1 end, \n" + "nc.`status` asc,nc.create_at desc " + "</script>")
-    IPage<ComActNeighborCircleAdminVO> pageNeighborByAdmin(Page page,
-        @Param("neighborCircleAdminDTO") ComActNeighborCircleAdminDTO neighborCircleAdminDTO);
+    IPage<ComActNeighborCircleAdminVO> pageNeighborByAdmin(Page page,@Param("neighborCircleAdminDTO") ComActNeighborCircleAdminDTO neighborCircleAdminDTO);
 
     @Select("select * from sys_user where user_id=#{userId}")
     AdministratorsUserVO selectUserByUserId(@Param("userId") Long userId);
@@ -81,7 +55,7 @@
         + ",canc.comment_num,canc.fabulous_num,canc.forward_num,canc.views_num,canc.refuse_reason,su.nick_name as name,su.image_url as headUrl "
         + " from com_act_neighbor_circle as canc " + " left join sys_user as su on su.user_id = canc.release_id "
         + " left join com_act_neighbor_circle_topic as canct on canct.id = canc.topic_id "
-        + " where canc.release_id = #{userId} and canc.status != 3 order by create_at desc" + " </script>")
+        + " where canc.release_id = #{userId} and canc.is_del = 2 and canc.status != 3 order by create_at desc" + " </script>")
     IPage<ComActNeighborCircleAppVO> neighborExamineByApp(Page page, @Param("userId") Long userId);
 
     @Select("select reply.id,reply.comment_id,reply.reply_content,reply.fabulous_num,reply.create_at"
@@ -134,8 +108,12 @@
     List<PieElementVO> countAllNoneCompletedWorkByCommunityId(@Param("communityId") Long communityId);
 
     @Select(" SELECT AVG(b.t)AS avgTime "
-        + "  FROM (SELECT  TIMESTAMPDIFF(MINUTE,create_at,feedback_at) AS t  FROM com_act_easy_photo WHERE community_id = #{communityId} and STATUS = 4 "
-        + "  UNION ALL SELECT  TIMESTAMPDIFF(MINUTE,create_at,finish_at) AS t  FROM com_act_micro_wish WHERE community_id = #{communityId} and STATUS = 6 "
-        + "  )AS b ")
-    Map<String, Object> countAvgByCommunityId(@Param("communityId") Long communityId);
+            + "  FROM (SELECT  TIMESTAMPDIFF(MINUTE,create_at,feedback_at) AS t  FROM com_act_easy_photo WHERE community_id = #{communityId} and STATUS = 4 "
+            + "  UNION ALL SELECT  TIMESTAMPDIFF(MINUTE,create_at,finish_at) AS t  FROM com_act_micro_wish WHERE community_id = #{communityId} and STATUS = 6 "
+            + "  )AS b ")
+    Map<String, Object> countAvgByCommunityId(@Param("communityId")Long communityId);
+
+    void addHotNum(@Param("circleId") Long circleId,@Param("hotNum") Long hotNum);
+
+    void addTopicHotNum(@Param("circleId") Long circleId,@Param("hotNum") Long hotNum);
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleTopicMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleTopicMapper.java
index 2ddf054..7b02898 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleTopicMapper.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleTopicMapper.java
@@ -38,5 +38,18 @@
      *            社区id
      * @return 邻里圈话题列表
      */
-    List<ComActNeighborCircleTopicAppVO> getNeighborTopicByApp(@Param("communityId") Long communityId);
+    List<ComActNeighborCircleTopicAppVO> getNeighborTopicByApp(@Param("communityId") Long communityId,@Param("isZero") Integer isZero,@Param("name") String name);
+
+    /**
+     * 添加邻里圈话题热度
+     * @param circleTopicId 邻里圈话题id
+     * @param hotNum    热度值
+     */
+    void addHotNum(@Param("circleTopicId") Long circleTopicId,@Param("hotNum") Long hotNum);
+
+    /**
+     * 添加邻里圈话题邻里圈数量
+     * @param circleTopicId 邻里圈话题id
+     */
+    void addCount(@Param("circleTopicId") Long circleTopicId);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java
index 3ca0c87..a778fd3 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java
@@ -41,11 +41,7 @@
      * @param questId
      *            问卷ID
      */
-    @Select("<script> " + "SELECT ac.* \n"
-        + "FROM com_act_questnaire_answer_content ac left JOIN com_act_questnaire_sub qs  ON ac.sub_id = qs.id \n"
-        + " LEFT JOIN   com_act_questnaire qn ON qs.que_Id = qn.id \n" + "WHERE qn.id=#{questId}\n"
-        + "ORDER BY ac.user_id, qs.id " + "</script>")
-    List<ComActQuestnaireAnswerContentDO> selectListByQuestnaire(@Param("questId") Long questId);
+    List<ComActQuestnaireAnswerContentVO> selectListByQuestnaire(@Param("questId") Long questId);
 
     /**
      * 查询问卷用户回答数据
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireDAO.java
index fc9b17c..32cc4e2 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireDAO.java
@@ -28,7 +28,7 @@
         + " left join com_act_questnaire_user_answer as caqua on caqua.questnaire_id = caq.id and caqua.user_id = #{pageQuestnaireDTO.userId} "
         + "WHERE " + " caq.state IN ( 2, 3 )  "
         + " AND caq.community_id = #{pageQuestnaireDTO.communityId}  and caq.is_hide = 0 " + "ORDER BY "
-        + " caq.state ASC, " + " isAnswer desc, " + " caq.create_at DESC" + "</script>")
+        + " caq.state ASC, " + " isAnswer ASC, " + " caq.create_at DESC" + "</script>")
     IPage<QuestnaireListVo> selectPageList(Page page, @Param("pageQuestnaireDTO") PageQuestnaireDTO pageQuestnaireDTO);
 
     @Select("<script>"
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveMapper.java
index 2985dc5..437322a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveMapper.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveMapper.java
@@ -87,4 +87,11 @@
      */
     void addReserveCountById(@Param("reserveId") Long reserveId);
 
+    /**
+     * 小程序查询所有进行中的预约登记
+     * @param communityId   社区id
+     * @return  社区所有进行中的预约登记列表
+     */
+    List<ComActReserveIndexVo> getReserveIndexList(@Param("communityId") Long communityId);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveRecordMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveRecordMapper.java
index c9378d4..4ab2551 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveRecordMapper.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveRecordMapper.java
@@ -25,7 +25,7 @@
  */
 @Mapper
 public interface ComActReserveRecordMapper extends BaseMapper<ComActReserveRecordDO> {
-    IPage<ComActReserveRecordDO> pageReserveList(Page page, @Param("pageUserReserveDTO") PageUserReserveDTO pageUserReserveDTO);
+    IPage<ComActReserveAppletsVO> pageReserveList(Page page, @Param("pageUserReserveDTO") PageUserReserveDTO pageUserReserveDTO);
 
     /**
      * 社区后台-根据预约id查询预约明细
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWorkGuideClassifyDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWorkGuideClassifyDAO.java
new file mode 100644
index 0000000..9484b82
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWorkGuideClassifyDAO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationDTO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideAppletsVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideClassifyVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationVO;
+import com.panzhihua.service_community.model.dos.ComActWorkGuideClassifyDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * title: ComActWorkGuideClassifyDAO  社区》办事指南》分类管理mapper类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》办事指南》分类管理mapper类
+ *
+ * @author txb
+ * @date 2021/8/31 14:21
+ */
+@Mapper
+public interface ComActWorkGuideClassifyDAO extends BaseMapper<ComActWorkGuideClassifyDO> {
+    IPage<ComActWorkGuideClassifyVO> pageWorkGuideClassify(Page page,
+                                                           @Param("comActWorkGuideClassifyVO") ComActWorkGuideClassifyVO comActWorkGuideClassifyVO);
+
+    /**
+     * 查询办事指南分类列表
+     * @return  办事指南分类列表
+     */
+    List<ComActWorkGuideAppletsVO> listWorkGuideClassify();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWorkGuideDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWorkGuideDAO.java
index 4758142..bb0d7df 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWorkGuideDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWorkGuideDAO.java
@@ -1,5 +1,6 @@
 package com.panzhihua.service_community.dao;
 
+import com.panzhihua.common.model.vos.community.ComActWorkGuideDetailAppletsVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -11,16 +12,28 @@
 import com.panzhihua.common.model.vos.community.ComActWorkGuideVO;
 import com.panzhihua.service_community.model.dos.ComActWorkGuideDO;
 
+import java.util.List;
+
 /**
  * @description: 办事指南
  **/
 @Mapper
 public interface ComActWorkGuideDAO extends BaseMapper<ComActWorkGuideDO> {
-    @Select("<script> " + "select id ,title,content,time_at,address,phone,create_at from com_act_work_guide "
+    @Select("<script> " + "select id ,title,content,classify,time_at,address,phone,create_at from com_act_work_guide "
         + " <where>"
+        + "<if test='pageActWorkGuideDTO.classify != null'>"
+        + "and classify = #{pageActWorkGuideDTO.classify} " + " </if> "
         + "<if test='pageActWorkGuideDTO.title != null and pageActWorkGuideDTO.title.trim() != &quot;&quot;'>"
-        + "title like concat('%',#{pageActWorkGuideDTO.title},'%')" + " </if> " + " </where>" + "order by update_at asc"
+        + "and title like concat('%',#{pageActWorkGuideDTO.title},'%')" + " </if> " + " </where>" + "order by update_at desc"
         + "</script>")
     IPage<ComActWorkGuideVO> pageWorkGuide(Page page,
         @Param("pageActWorkGuideDTO") PageActWorkGuideDTO pageActWorkGuideDTO);
+
+    /**
+     * 根据办事指南分类id查询办事指南
+     * @param classifyId    办事指南分类id
+     * @param pageSize    默认展示条数
+     * @return  办事指南列表
+     */
+    List<ComActWorkGuideDetailAppletsVO> getWorkGuideListByClassifyId(@Param("classifyId") Long classifyId,@Param("pageSize") Long pageSize);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthElderliesDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthElderliesDAO.java
new file mode 100644
index 0000000..045d7ff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthElderliesDAO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.model.dos.ComElderAuthElderliesDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * title: ComElderAuthElderliesDAO  社区政务》高龄老人认证》高龄老人表mapper类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区政务》高龄老人认证》高龄老人表mapper类
+ *
+ * @author txb
+ * @date 2021/9/01 14:12
+ */
+@Mapper
+public interface ComElderAuthElderliesDAO extends BaseMapper<ComElderAuthElderliesDO> {
+
+    int haveElderAuthElderliesAmount(@Param("communityId") Long communityId, @Param("authPeriod") String authPeriod);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthRecordsDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthRecordsDAO.java
new file mode 100644
index 0000000..177a4e8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthRecordsDAO.java
@@ -0,0 +1,62 @@
+package com.panzhihua.service_community.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO;
+import com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO;
+import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
+import com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO;
+import com.panzhihua.common.model.vos.community.ComElderAuthRecordExcleVO;
+import com.panzhihua.common.model.vos.community.ComElderAuthRecordStatisticExcleVO;
+import com.panzhihua.common.model.vos.community.ComElderAuthRecordVO;
+import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO;
+import java.util.List;
+
+/**
+ * title: ComElderAuthRecordsDAO  社区政务》高龄老人认证》认证记录表mapper类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区政务》高龄老人认证》认证记录表mapper类
+ *
+ * @author txb
+ * @date 2021/9/01 14:12
+ */
+@Mapper
+public interface ComElderAuthRecordsDAO extends BaseMapper<ComElderAuthRecordsDO> {
+
+    IPage<ComElderAuthRecordVO> pageElderAuthRecords(Page page,
+                                               @Param("pageElderAuthRecordsDTO") PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
+
+    ComElderAuthRecordVO detailElderAuthRecords(@Param("authRecordId") Long authRecordId);
+
+    List<ComElderAuthRecordExcleVO> getElderAuthRecordsByIds(@Param("ids") List<Long> ids);
+
+    void updateAll(@Param("comElderAuthRecordsDOS") List<ComElderAuthRecordsDO> comElderAuthRecordsDOS);
+
+    List<ComElderAuthRecordStatisticExcleVO> exportElderAuthRecordsStatistic(@Param("pageElderAuthRecordsDTO") PageElderAuthStatisticDTO pageElderAuthRecordsDTO);
+
+    /**
+     * 分页查询高龄认证记录
+     * @param page 分页参数
+     * @param pageIdentityAuthRecordDTO
+     * @return
+     */
+    IPage<IdentityAuthRecordDetailVO> queryRecordWithPage(@Param("page") Page page, @Param("pageIdentityAuthRecordDTO") PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO);
+
+    /**
+     * 获取身份认证详情
+     * @param identityAuthId 认证id
+     * @return ComElderAuthRecordVO
+     */
+    IdentityAuthRecordDetailVO findById(@Param("identityAuthId") Long identityAuthId);
+    /**
+     * 查询社区待审核高龄认证记录id集合
+     * @param communityId   社区id
+     * @param authRecordId   需要排除的详情id
+     * @return  待审核高龄认证记录id集合
+     */
+    List<Long> getNextIds(@Param("communityId") Long communityId,@Param("authRecordId") Long authRecordId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthHistoryRecordMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthHistoryRecordMapper.java
index 8a4777b..2ac3278 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthHistoryRecordMapper.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthHistoryRecordMapper.java
@@ -1,5 +1,9 @@
 package com.panzhihua.service_community.dao;
 
+import com.panzhihua.common.model.dtos.community.elder.ElderAuthStatisticHeaderDTO;
+import com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO;
+import com.panzhihua.common.model.vos.elders.ComEldersAuthStatisticHeaderVO;
+import com.panzhihua.common.model.vos.elders.ComEldersAuthStatisticVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -30,4 +34,14 @@
     IPage<ComEldersAuthHistoryRecordVO> findByPage(Page page,
         @Param("pageComEldersAuthHistoryRecordDTO") PageComEldersAuthHistoryRecordDTO pageComEldersAuthHistoryRecordDTO);
 
+    /**
+     * 高龄认证统计-分页查询
+     * @param pageElderAuthStatisticDTO 请求参数
+     * @return  高龄认证统计列表
+     */
+    IPage<ComEldersAuthStatisticVO> pageAuthStatisticAdmin(Page page,
+                                               @Param("pageElderAuthStatisticDTO") PageElderAuthStatisticDTO pageElderAuthStatisticDTO);
+
+    ComEldersAuthStatisticHeaderVO getAuthHeaderStatisticAdmin(@Param("statisticHeaderDTO") ElderAuthStatisticHeaderDTO statisticHeaderDTO);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthUserMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthUserMapper.java
index cce8437..c563207 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthUserMapper.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthUserMapper.java
@@ -34,4 +34,6 @@
      * @return
      */
     int countCurrentMonthValidAuthRecord(@Param("elderId") Long elderId);
+
+    void updateAuthStatus();
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java
index 52cb1ce..036dd0c 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java
@@ -156,9 +156,9 @@
     IPage<InputUserInfoVO> specialInputUser(Page page, @Param("pageInputUserDTO") PageInputUserDTO pageInputUserDTO);
 
     @Select("<script> "
-        + "select id,tag_name,community_id,create_at,sys_flag from com_mng_user_tag where community_id = #{comMngUserTagDTO.communityId}"
+        + "select id,tag_name,community_id,create_at,sys_flag from com_mng_user_tag <where> "
         + "<if test='comMngUserTagDTO.tagName != null and comMngUserTagDTO.tagName != &quot;&quot;'>"
-        + " AND tag_name LIKE concat(#{comMngUserTagDTO.tagName},'%') " + " </if> " + " order by create_at desc "
+        + " AND tag_name LIKE concat(#{comMngUserTagDTO.tagName},'%') " + " </if> " + "</where>" + " order by create_at desc "
         + "</script>")
     IPage<ComMngTagVO> specialInputUserTags(Page page, @Param("comMngUserTagDTO") PageInputUserDTO comMngUserTagDTO);
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthHistoryRecordMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthHistoryRecordMapper.java
new file mode 100644
index 0000000..8e223e5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthHistoryRecordMapper.java
@@ -0,0 +1,37 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.elder.ElderAuthStatisticHeaderDTO;
+import com.panzhihua.common.model.dtos.community.elder.PagePensionAuthStatisticDTO;
+import com.panzhihua.common.model.vos.elders.ComEldersAuthStatisticHeaderVO;
+import com.panzhihua.common.model.vos.elders.ComPensionAuthStatisticVO;
+import com.panzhihua.service_community.model.dos.ComPensionAuthHistoryRecordDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author lyq
+ * @date  2021-09-18 15:07:12
+ * @deprecated   养老认证历史记录表mapper类
+ */
+@Mapper
+public interface ComPensionAuthHistoryRecordMapper extends BaseMapper<ComPensionAuthHistoryRecordDO> {
+
+    /**
+     * 养老认证统计-分页查询
+     * @param pensionAuthStatisticDTO   请求参数
+     * @return  养老认证统列表
+     */
+    IPage<ComPensionAuthStatisticVO> pageAuthStatisticAdmin(Page page,
+                                                            @Param("pensionAuthStatisticDTO") PagePensionAuthStatisticDTO pensionAuthStatisticDTO);
+
+    /**
+     * 养老认证表头统计
+     * @param statisticHeaderDTO    请求参数
+     * @return  统计结果
+     */
+    ComEldersAuthStatisticHeaderVO getAuthHeaderStatisticAdmin(@Param("statisticHeaderDTO") ElderAuthStatisticHeaderDTO statisticHeaderDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthPensionerDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthPensionerDAO.java
new file mode 100644
index 0000000..53f9db0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthPensionerDAO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO;
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.model.dos.ComPensionAuthPensionerDO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @title: ComPensionAuthPensionerDAO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老金人口表mapper
+ * @author: hans
+ * @date: 2021/09/01 17:06
+ */
+@Mapper
+public interface ComPensionAuthPensionerDAO extends BaseMapper<ComPensionAuthPensionerDO> {
+
+    int havePensionAuthPensionerAmount(@Param("communityId") Long communityId, @Param("authPeriod") String authPeriod);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthRecordDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthRecordDAO.java
new file mode 100644
index 0000000..e8e77e6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthRecordDAO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordExcleVO;
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordStatisticExcleVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
+import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO;
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordVO;
+import com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO;
+import com.panzhihua.service_community.model.dos.ComPensionAuthRecordDO;
+
+/**
+ * @title: ComPensionAuthRecordDAO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老认证记录表mapper
+ * @author: hans
+ * @date: 2021/09/01 17:28
+ */
+@Mapper
+public interface ComPensionAuthRecordDAO extends BaseMapper<ComPensionAuthRecordDO> {
+    IPage<ComPensionAuthRecordVO> pagePensionAuthRecords(Page page,
+                                                         @Param("pageElderAuthRecordsDTO") PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
+
+    ComPensionAuthRecordVO detailPensionAuthRecords(@Param("authRecordId") Long authRecordId);
+
+    List<ComPensionAuthRecordExcleVO> getPensionAuthRecordsByIds(@Param("ids") List<Long> ids);
+
+    void updateAll(@Param("comPensionAuthRecordDOS") List<ComPensionAuthRecordDO> comPensionAuthRecordDOS);
+
+    List<ComPensionAuthRecordStatisticExcleVO> exportPensionAuthRecordsStatistic(@Param("pageElderAuthRecordsDTO") PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
+
+    /**
+     * 分页查询养老认证记录
+     * @param page 分页参数
+     * @param pageIdentityAuthRecordDTO
+     * @return
+     */
+    IPage<IdentityAuthRecordDetailVO> queryRecordWithPage(@Param("page") Page page, @Param("pageIdentityAuthRecordDTO") PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO);
+
+    /**
+     * 获取养老认证详情
+     * @param identityAuthId 认证id
+     * @return ComPensionAuthRecordVO
+     */
+    IdentityAuthRecordDetailVO findById(@Param("identityAuthId") Long identityAuthId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthStatisticsDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthStatisticsDAO.java
new file mode 100644
index 0000000..2c4fc4d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthStatisticsDAO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.model.dos.ComPensionAuthStatisticsDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @title: ComPensionAuthStatisticsDAO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老认证统计表mapper
+ * @author: txb
+ * @date: 2021/09/07 17:28
+ */
+@Mapper
+public interface ComPensionAuthStatisticsDAO extends BaseMapper<ComPensionAuthStatisticsDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java
index a5ff22b..facf5cf 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java
@@ -1,7 +1,10 @@
 package com.panzhihua.service_community.dao;
 
 import java.util.List;
+import java.util.Map;
 
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.elders.ComEldersAuthHistoryVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -13,10 +16,6 @@
 import com.panzhihua.common.model.dtos.community.PageComEldersRecordsDTO;
 import com.panzhihua.common.model.dtos.community.PageEldersAuthDTO;
 import com.panzhihua.common.model.dtos.community.PageEldersAuthRecordDTO;
-import com.panzhihua.common.model.vos.community.ComEldersAuthRecordForCommunityVO;
-import com.panzhihua.common.model.vos.community.ComEldersAuthRecordVO;
-import com.panzhihua.common.model.vos.community.EldersAuthDetailsVO;
-import com.panzhihua.common.model.vos.community.EldersAuthVO;
 import com.panzhihua.common.model.vos.user.SysUserVO;
 import com.panzhihua.service_community.model.dos.EldersAuthDO;
 
@@ -57,7 +56,7 @@
     IPage<EldersAuthVO> selectByPage(Page page, @Param("pageEldersAuthDTO") PageEldersAuthDTO pageEldersAuthDTO);
 
     @Select("<script> " + "SELECT ea.id, ea.create_at, ea.create_by, ea.update_by, ea.update_at,"
-        + " ea.AUTH_USER_NAME , ea.ID_CARD, ea.BIRTH_DAY, ea.FAMILY_USER_ID, "
+        + " ea.AUTH_USER_NAME , ea.ID_CARD, ea.BIRTH_DAY, ea.FAMILY_USER_ID,ea.type, "
         + " ea.DOMICILE, ea.SUMIT_USER_ID,  u.phone as submitUserAccount  , ea.VIDEO_URL , ea.FAMILY_USER_ID, "
         + " u.name as submitUserName, ROUND(DATEDIFF(CURDATE(), ea.BIRTH_DAY)/365.2422) as age \n"
         + "FROM  com_elders_auth ea LEFT JOIN sys_user  u ON ea.SUMIT_USER_ID = u.user_id\n" + " where ea.id = #{id}"
@@ -138,8 +137,8 @@
         + " left join com_elders_auth e on t.id = e.id " + " LEFT JOIN sys_user u ON e.SUMIT_USER_ID = u.user_id  "
         + "<where>" + " <if test='pageEldersAuthRecordDTO.name!=null'>\n"
         + " AND e.AUTH_USER_NAME like concat('%', #{pageEldersAuthRecordDTO.name}, '%')" + "</if>"
-        + " <if test='pageEldersAuthRecordDTO.idCard!=null'>\n"
-        + " AND e.ID_CARD  like concat('%',  #{pageEldersAuthRecordDTO.idCard}, '%')\n" + "</if>"
+        + " <if test='pageEldersAuthRecordDTO.idCard!=null and pageEldersAuthRecordDTO.idCard!=&quot;&quot;'>\n"
+        + " AND e.ID_CARD = #{pageEldersAuthRecordDTO.idCard}\n" + "</if>"
         + " <if test='pageEldersAuthRecordDTO.type!=null'>\n" + " AND e.type = #{pageEldersAuthRecordDTO.type}\n"
         + "</if>" + " <if test='pageEldersAuthRecordDTO.month!=null'>\n"
         + " AND month(e.CREATE_AT) = #{pageEldersAuthRecordDTO.month}\n" + "</if>\n" + "</where>\n"
@@ -149,4 +148,18 @@
     IPage<ComEldersAuthRecordForCommunityVO> selectCommunityEldersRecordByPage(Page page,
         @Param("pageEldersAuthRecordDTO") PageEldersAuthRecordDTO pageEldersAuthRecordDTO);
 
+    /**
+     * 根据社区id查询当前社区有多少人未认证和认证
+     * @param communityId   社区id
+     * @return  前社区有多少人未认证和认证
+     */
+    Map<String,Object> getEldersAuthStatistics(@Param("communityId") Long communityId);
+
+    /**
+     * 查询社区上月所有视频认证记录
+     * @param communityId   社区id
+     * @return  上月所有视频认证记录
+     */
+    List<ComEldersAuthHistoryVO> getEldersAuthRecords(@Param("communityId") Long communityId);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysConfMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysConfMapper.java
index 6807c96..220a4f0 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysConfMapper.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysConfMapper.java
@@ -29,4 +29,6 @@
      */
     IPage<SysConfVO> findByPage(Page page, @Param("pageSysConfDTO") PageSysConfDTO pageSysConfDTO);
 
+        String getSysConfValue(@Param("key")String key,@Param("communityId") Long communityId);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActPictureDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActPictureDO.java
index d77e68b..6f7c274 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActPictureDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActPictureDO.java
@@ -33,6 +33,11 @@
     private Long activityId;
 
     /**
+     * 类型(1.党建 2.节日 3.天气预报 4.疫情 5.灾害预警 6.志愿者)
+     */
+    private Integer type;
+
+    /**
     * 用户id, 和用户信息表的相关id关联
     */
     private Long userId;
@@ -53,15 +58,9 @@
     */
     private String pictureName;
 
-@Override
-public String toString() {
-        return "ComActActPictureDO{" +
-                "id=" + id +
-                ", activityId=" + activityId +
-                ", userId=" + userId +
-                ", createAt=" + createAt +
-                ", uploadPicture=" + uploadPicture +
-                ", pictureName=" + pictureName +
-        "}";
-        }
+    /**
+     * 是否系统预置(1.是 0.否)
+     */
+    private Integer sysFlag;
+
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActivityDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActivityDO.java
index b67cd4b..e6e80bd 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActivityDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActivityDO.java
@@ -3,9 +3,12 @@
 import java.io.Serializable;
 import java.util.Date;
 
-import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 
-import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
@@ -61,7 +64,7 @@
     private Date publishAt;
 
     /**
-     * 互动结束时间
+     * 活动结束时间
      */
     private Date endAt;
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussCommentDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussCommentDO.java
index 3ec054e..ef631e5 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussCommentDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussCommentDO.java
@@ -59,4 +59,22 @@
      * 用户主键
      */
     private Long userId;
+
+    /**
+     * 回复量
+     */
+    private Integer replyNum;
+
+    /**
+     * 是否删除(1.是  2.否)
+     */
+    private Integer isDel;
+
+    /**
+     * 是否删除枚举(1.是  2.否)
+     */
+    public interface isDelete{
+        int yes = 1;
+        int no = 2;
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussDO.java
index f11e2b9..455b4e2 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussDO.java
@@ -1,6 +1,7 @@
 package com.panzhihua.service_community.model.dos;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 
 import com.baomidou.mybatisplus.annotation.*;
@@ -9,7 +10,7 @@
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
- * @description: 一起议
+ * @description: 议事投票
  * @author: huang.hongfa weixin hhf9596 qq 959656820
  * @create: 2021-01-22 14:48
  **/
@@ -30,7 +31,7 @@
     private String discussSubject;
 
     /**
-     * 类型 1 图文 2 投票
+     * 类型 1 议事 2 投票
      */
     private Integer type;
 
@@ -70,4 +71,116 @@
      */
     private String voteTitle;
 
+    /**
+     * 是否可重复投票(1.是 2.否)
+     */
+    private Integer isRepeat;
+
+    /**
+     * 每人票数
+     */
+    private Integer count;
+
+    /**
+     * 单张图片宽度
+     */
+    private BigDecimal imgWidth;
+
+    /**
+     * 单张图片高度
+     */
+    private BigDecimal imgHeight;
+
+    /**
+     * 开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+
+    /**
+     * 评论数
+     */
+    private Integer commentNum;
+
+    /**
+     * 点赞数
+     */
+    private Integer fabulousNum;
+
+    /**
+     * 浏览量
+     */
+    private Integer viewsNum;
+
+    /**
+     * 参与人数
+     */
+    private Integer joinNum;
+
+    /**
+     * 状态(1.未开始 2.进行中 3.待公布 4.已公布 5.已发布)
+     */
+    private Integer status;
+
+    /**
+     * 是否已删除(1.是 2.否)
+     */
+    private Integer isDel;
+
+    /**
+     * 公布结果
+     */
+    private String publishResult;
+
+    /**
+     * 公布时间
+     */
+    private Date publishAt;
+
+    /**
+     * 发布时间
+     */
+    private Date releaseAt;
+
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+
+    /**
+     * 公布人id
+     */
+    private Long publishBy;
+
+    /**
+     * 类型 1 议事 2 投票
+     */
+    public interface type{
+        int ys = 1;
+        int tp = 2;
+    }
+
+    /**
+     * 是否枚举(1.是  2.否)
+     */
+    public interface isOk{
+        int yes = 1;
+        int no = 2;
+    }
+
+    /**
+     * 状态(1.未开始 2.进行中 3.待公布 4.已公布 5.已发布)
+     */
+    public interface status{
+        int wks = 1;
+        int jxz = 2;
+        int dgb = 3;
+        int ygb = 4;
+        int yfb = 5;
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussOptionUserDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussOptionUserDO.java
index b989bc1..3fc2051 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussOptionUserDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussOptionUserDO.java
@@ -37,4 +37,9 @@
      * 投票时间
      */
     private Date createAt;
+
+    /**
+     * 一起议id
+     */
+    private Long discussId;
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoClassifyDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoClassifyDO.java
index d709870..e81f580 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoClassifyDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoClassifyDO.java
@@ -3,9 +3,7 @@
 import java.io.Serializable;
 import java.util.Date;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
 
 import lombok.Data;
 
@@ -45,6 +43,7 @@
     /**
      * 备注
      */
+    @TableField(value = "remark", updateStrategy = FieldStrategy.IGNORED)
     private String remark;
 
     /**
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishDO.java
index 7ab7b55..5f2b01b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishDO.java
@@ -1,11 +1,11 @@
 package com.panzhihua.service_community.model.dos;
 
-import java.io.Serializable;
-import java.util.Date;
-
 import com.baomidou.mybatisplus.annotation.*;
-
 import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -40,12 +40,13 @@
     private String wishName;
 
     /**
-     * 状态 状态 1待审核 2待分配 3进行中 4已驳回 5待确认6 已完成
+     * 状态
+     * 状态 1待审核  2待分配 3进行中  4已驳回 5待确认6 已完成
      */
     private Integer status;
 
     /**
-     * 形式 1分配人员 2发起活动
+     * 形式  1分配人员  2发起活动
      */
     private Integer form;
 
@@ -130,5 +131,32 @@
      * 反馈图片集合,逗号分隔
      */
     private String feedbackPhotoPathList;
+    /**
+     * 目标集心数
+     */
+    private Integer aimNum;
+
+    /**
+     * 单张图片宽度
+     */
+    private BigDecimal imgWidth;
+
+    /**
+     * 单张图片高度
+     */
+    private BigDecimal imgHeight;
+
+    /**
+     * 状态 1待审核  2待分配 3进行中  4已驳回 5待确认6 已完成 7集心中
+     */
+    public interface status{
+        int dsh=1;
+        int dfp=2;
+        int jxz=3;
+        int ybh=4;
+        int dqr=5;
+        int ywc=6;
+        int jx=7;
+    }
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishFeedbackDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishFeedbackDO.java
new file mode 100644
index 0000000..2c09976
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishFeedbackDO.java
@@ -0,0 +1,62 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+
+
+/**
+ * @auther lyq
+ * @create 2021-08-26 14:26:50
+ * @describe 实体类
+ */
+
+@Data
+@TableName("com_act_micro_wish_feedback")
+public class ComActMicroWishFeedbackDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+        @TableId(type = IdType.AUTO)
+        private Integer id;
+
+    /**
+    * 微心愿Id
+    */
+        private Long microId;
+
+    /**
+    * 用户id
+    */
+        private Long userId;
+
+    /**
+    * 反馈内容
+    */
+        private String content;
+
+    /**
+    * 反馈图片
+    */
+        private String imgUrl;
+
+    /**
+    * 反馈时间
+    */
+        private Date createTime;
+
+        @Override
+        public String toString() {
+                return "ComActMicroWishFeedbackDO{" +
+                        "id=" + id +
+                        ", microId=" + microId +
+                        ", userId=" + userId +
+                        ", content=" + content +
+                        ", imgUrl=" + imgUrl +
+                        ", createTime=" + createTime +
+                "}";
+                }
+        }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishOperationRecordDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishOperationRecordDO.java
new file mode 100644
index 0000000..05ae7cf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishOperationRecordDO.java
@@ -0,0 +1,89 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.io.Serializable;
+
+import lombok.Data;
+
+
+/**
+ * @auther lyq
+ * @create 2021-08-27 10:28:04
+ * @describe 实体类
+ */
+
+@Data
+@TableName("com_act_micro_wish_operation_record")
+public class ComActMicroWishOperationRecordDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 操作内容
+     */
+    private String content;
+
+    /**
+     * 人员id
+     */
+    private Long userId;
+
+    /**
+     * 心愿Id
+     */
+    private Long wishId;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     *操作类型 1已提交 2审核通过 3 驳回 4完成集心 5 分配 6 完成 7反馈 8系统自动确认
+     */
+    private Integer type;
+
+    /**
+     * 操作备注
+     */
+    private String remark;
+
+    /**
+     * 反馈图片url
+     */
+    private String imgUrl;
+
+    @Override
+    public String toString() {
+        return "ComActMicroWishOperationRecordDO{" +
+                "id=" + id +
+                ", content='" + content + '\'' +
+                ", userId=" + userId +
+                ", wishId=" + wishId +
+                ", createTime=" + createTime +
+                ", type=" + type +
+                '}';
+    }
+    /**
+     *操作类型 1已提交 2审核通过 3 驳回 4完成集心 5 分配 6 完成 7反馈 8系统自动确认
+     */
+    public interface type{
+        int ytj=1;
+        int sh=2;
+        int bh=3;
+        int jx=4;
+        int fp=5;
+        int wc=6;
+        int fk=7;
+        int zd=8;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleDO.java
index 78e659c..2a12a65 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleDO.java
@@ -121,6 +121,16 @@
      */
     private Integer type;
 
+    /**
+     * 热度
+     */
+    private Long hotNum;
+
+    /**
+     * 是否已删除(1.是   2.否)
+     */
+    private Integer isDel;
+
     @Override
     public String toString() {
         return "ComActNeighborCircleDO{" + "id=" + id + ", releaseId=" + releaseId + ", releasePhone=" + releasePhone
@@ -147,4 +157,12 @@
         int mini = 1;
         int admin = 2;
     }
+
+    /**
+     * 是否已删除(1.是   2.否)
+     */
+    public interface isDel{
+        int yes = 1;
+        int no = 2;
+    }
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleTopicDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleTopicDO.java
index 9ec55cc..34749bc 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleTopicDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleTopicDO.java
@@ -52,6 +52,24 @@
      */
     private Long createBy;
 
+    /**
+     * 热度
+     */
+    private Long hotNum;
+
+    /**
+     * 邻里圈数量
+     */
+    private Integer count;
+
+    /**
+     * 状态(1.启用  2.禁用)
+     */
+    public interface status{
+        int yes = 1;
+        int no = 2;
+    }
+
     @Override
     public String toString() {
         return "ComActNeighborCircleTopicDO{" + "id=" + id + ", name=" + name + ", status=" + status + ", createAt="
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireAnswerContentDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireAnswerContentDO.java
index 826b20f..6b89fb3 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireAnswerContentDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireAnswerContentDO.java
@@ -43,4 +43,8 @@
      * 题目选项id
      */
     private Long selectionId;
+    /**
+     * 答题记录id
+     */
+    private Long answerId;
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubDO.java
index d1177cf..2622ccc 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubDO.java
@@ -22,7 +22,7 @@
     /**
      * 类型 0 单选  1 多选 2 输入框 2姓名输入框 3 手机号 4 身份证 5 文字描述 6 日期选择
      */
-    private int type;
+    private Integer type;
     /**
      * 题目内容
      */
@@ -41,4 +41,22 @@
      */
     @TableField("`key`")
     private String key;
+
+    /**
+     * 类型 0 单选  1 多选 2 输入框  3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框 10图片选择 11图片上传
+     */
+    public interface type {
+        int danxuan = 0;
+        int duoxuan = 1;
+        int wenda = 2;
+        int phone = 3;
+        int card = 4;
+        int describe = 5;
+        int date = 6;
+        int time = 7;
+        int input = 8;
+        int name = 9;
+        int imgselect = 10;
+        int imgopload = 11;
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubSelectionDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubSelectionDO.java
index 97a5981..77cd92a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubSelectionDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubSelectionDO.java
@@ -53,4 +53,9 @@
     @TableField("`key`")
     private String key;
 
+    /**
+     * 组件文件上传保存路径
+     */
+    private String url;
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveRecordDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveRecordDO.java
index f1e295f..99d0c00 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveRecordDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveRecordDO.java
@@ -110,6 +110,11 @@
      */
     private Long updateBy;
 
+    /**
+     * 处理人id
+     */
+    private Long handleId;
+
     @Override
     public String toString() {
         return "ComActReserveRecordDO{" +
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveSubSelectionDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveSubSelectionDO.java
index dacedce..d962122 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveSubSelectionDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveSubSelectionDO.java
@@ -84,6 +84,11 @@
      */
     private Long updateBy;
 
+    /**
+     * 组件文件上传保存路径
+     */
+    private String url;
+
     @Override
     public String toString() {
         return "ComActReserveSubSelectionDO{" +
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideClassifyDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideClassifyDO.java
new file mode 100644
index 0000000..13269b7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideClassifyDO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * title: ComActWorkGuideClassifyDO  社区》办事指南》分类管理实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》办事指南》分类管理实体类
+ *
+ * @author txb
+ * @date 2021/8/31 14:21
+ */
+
+@Data
+@TableName("com_act_work_guide_classify")
+public class ComActWorkGuideClassifyDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 自增id
+    */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+    * 分类名称
+    */
+    private String classifyName;
+
+    /**
+     * 图标地址
+     */
+    private String pictureUrl;
+
+    /**
+    * 创建时间
+    */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+    * 系统预置:1-是 0-否
+    */
+    private Integer sysFlag;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideDO.java
index 5ec7a20..3b92bbb 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideDO.java
@@ -28,6 +28,10 @@
      */
     private String content;
     /**
+     * 办事指南分类
+     */
+    private Integer classify;
+    /**
      * 办理时间
      */
     private String timeAt;
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthElderliesDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthElderliesDO.java
new file mode 100644
index 0000000..f45ef1f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthElderliesDO.java
@@ -0,0 +1,141 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * title: ComElderAuthElderliesDO  社区政务》高龄老人认证》高龄老人表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区政务》高龄老人认证》高龄老人表实体类
+ *
+ * @author txb
+ * @date 2021/9/01 14:12
+ */
+
+@Data
+@TableName("com_elder_auth_elderlies")
+@EncryptDecryptClass
+public class ComElderAuthElderliesDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键id
+    */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+    * 人口id
+    */
+    private Long populationId;
+
+    /**
+    * 街道id
+    */
+    private Long streetId;
+
+    /**
+    * 社区id
+    */
+    private Long communityId;
+
+    /**
+    * 联系电话
+    */
+    private String phone;
+
+    /**
+    * 姓名
+    */
+    private String name;
+
+    /**
+    * 身份证号
+    */
+    @EncryptDecryptField
+    private String idCard;
+
+    /**
+    * 性别(1.男 2.女 3.其他)
+    */
+    private Integer sex;
+
+    /**
+    * 年龄
+    */
+    private Integer age;
+
+    /**
+    * 出生日期
+    */
+    private String birthday;
+
+    /**
+    * 人员类别(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上)
+    */
+    private Integer personnelCategory;
+
+    /**
+    * 是否高龄老人登记(1.是  0.否)
+    */
+    private Integer isRegister;
+
+    /**
+    * 是否健在(1.是  0.否)
+    */
+    private Integer isAlive;
+
+    /**
+    * 居住地址
+    */
+    private String address;
+
+    /**
+    * 备注
+    */
+    private String remark;
+
+    /**
+    * 高龄津贴开始领取日期
+    */
+    private Date receiveAllowanceBegin;
+
+    /**
+    * 创建时间
+    */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+    * 创建用户
+    */
+    private Long createBy;
+
+    /**
+    * 更新时间
+    */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+    * 修改用户
+    */
+    private Long updateBy;
+
+    /**
+     * 人员类别(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上)
+     */
+    public interface personnelCategory {
+        int under90 = 1;
+        int under100 = 2;
+        int above100 = 3;
+    }
+
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthRecordsDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthRecordsDO.java
new file mode 100644
index 0000000..a9b26bf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthRecordsDO.java
@@ -0,0 +1,168 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * title: ComElderAuthRecordsDO  社区政务》高龄老人认证》认证记录表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区政务》高龄老人认证》认证记录表实体类
+ *
+ * @author txb
+ * @date 2021/9/01 14:12
+ */
+
+@Data
+@TableName("com_elder_auth_records")
+public class ComElderAuthRecordsDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键id
+    */
+    @TableId(type = IdType.INPUT)
+    private Long id;
+
+    /**
+    * 高龄人口id
+    */
+    private Long elderliesId;
+
+    /**
+    * 认证期数
+    */
+    private String authPeriod;
+
+    /**
+    * 提交用户id
+    */
+    private Long submitUserId;
+
+    /**
+     * 认证方式(1.视频认证 2.人脸认证 3.线下认证)
+     */
+    private Integer authMethod;
+
+    /**
+     * 人脸核验结果数据
+     */
+    private String verificationResult;
+
+    /**
+    * 认证视频
+    */
+    private String authVideo;
+
+    /**
+     * 现居地址
+     */
+    private String address;
+
+    /**
+    * 审核人员
+    */
+    private Long approverId;
+
+    /**
+    * 审核状态(1.待审核 2.驳回 3.通过)
+    */
+    private Integer approvalStatus;
+
+    /**
+    * 审核时间
+    */
+    private Date approvalDate;
+
+    /**
+    * 标记
+    */
+    private String mark;
+
+    /**
+    * 驳回原因
+    */
+    private String rejectReason;
+
+    /**
+    * 认证状态(1.已认证 0.未认证)
+    */
+    private Integer authStatus;
+
+    /**
+    * 认证时间
+    */
+    private Date authDate;
+
+    /**
+    * 创建时间
+    */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+    * 更新时间
+    */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 审核状态(1.待审核 2.驳回 3.通过)
+     */
+    public interface approvalStatus{
+        int dsh = 1;
+        int bh = 2;
+        int tg = 3;
+    }
+
+    /**
+     * 认证状态(1.已认证 0.未认证)
+     */
+    public interface authStatus{
+        int yrz = 1;
+        int wrz = 0;
+    }
+
+    /**
+     * 认证方式(1.视频认证 2.人脸认证 3.线下认证)
+     */
+    public interface authMethod{
+        int sprz = 1;
+        int rlrz = 2;
+        int xxrz = 3;
+    }
+
+    @Override
+    public String toString() {
+        return "ComElderAuthRecordsDO{" +
+                "id=" + id +
+                ", elderliesId=" + elderliesId +
+                ", authPeriod=" + authPeriod +
+                ", submitUserId=" + submitUserId +
+                ", authVideo=" + authVideo +
+                ", address=" + address +
+                ", approverId=" + approverId +
+                ", approvalStatus=" + approvalStatus +
+                ", approvalDate=" + approvalDate +
+                ", mark=" + mark +
+                ", rejectReason=" + rejectReason +
+                ", authStatus=" + authStatus +
+                ", authDate=" + authDate +
+                ", createAt=" + createAt +
+                ", updateAt=" + updateAt +
+                "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthElderlyDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthElderlyDO.java
index d55d632..84015a6 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthElderlyDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthElderlyDO.java
@@ -81,4 +81,19 @@
      */
     private Long updateBy;
 
+    /**
+     * 是否健在(1.是 2.否) 列: is_exist
+     */
+    public interface isExist{
+        int yes=1;
+        int no=2;
+    }
+    /**
+     * 是否办理高龄津贴(1.是 2.否) 列: is_exist
+     */
+    public interface isBigAge{
+        int yes=1;
+        int no=2;
+    }
+
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthHistoryRecordDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthHistoryRecordDO.java
index e6c738c..0b421d1 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthHistoryRecordDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthHistoryRecordDO.java
@@ -68,4 +68,76 @@
      */
     private Long communityId;
 
+    /**
+     * 高龄人口id
+     */
+    private Long elderliesId;
+
+    /**
+     * 认证期数
+     */
+    private String authPeriod;
+
+    /**
+     * 提交用户id
+     */
+    private Long submitUserId;
+
+    /**
+     * 认证方式(1.视频认证 2.人脸认证 3.线下认证)
+     */
+    private Integer authMethod;
+
+    /**
+     * 人脸核验结果数据
+     */
+    private String verificationResult;
+
+    /**
+     * 标记
+     */
+    private String mark;
+
+    /**
+     * 是否健在
+     */
+    private Integer isAlive;
+
+    /**
+     * 人员类别(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上)
+     */
+    private Integer personnelCategory;
+
+    /**
+     * 性别(1.男 2.女 3.其他)
+     */
+    private Integer sex;
+
+    /**
+     * 手机号
+     */
+    private String phone;
+
+    /**
+     * 认证时间
+     */
+    private Date authDate;
+
+    /**
+     * 审核时间
+     */
+    private Date approvalDate;
+
+    /**
+     * 审核id
+     */
+    private Long approverId;
+
+    /**
+     * 本月是否已认证(1.是 2.否)
+     */
+    public interface isAuth{
+        int yes = 1;
+        int no = 2;
+    }
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthHistoryRecordDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthHistoryRecordDO.java
new file mode 100644
index 0000000..6b82b5f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthHistoryRecordDO.java
@@ -0,0 +1,168 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * @author  lyq
+ * @date  2021-09-18 15:07:12
+ * @deprecated  养老认证历史记录表实体类
+ */
+
+@Data
+@TableName("com_pension_auth_history_record")
+public class ComPensionAuthHistoryRecordDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 老人用户id
+     */
+    private Long userId;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    private String idCard;
+
+    /**
+     * 出生年月
+     */
+    private String brithday;
+
+    /**
+     * 年龄
+     */
+    private Integer age;
+
+    /**
+     * 户籍地
+     */
+    private String domicile;
+
+    /**
+     * 本月是否已认证(1.是 2.否)
+     */
+    private Integer isAuth;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 养老人口id
+     */
+    private Long elderliesId;
+
+    /**
+     * 认证期数
+     */
+    private String authPeriod;
+
+    /**
+     * 提交用户id
+     */
+    private Long submitUserId;
+
+    /**
+     * 认证方式(1.视频认证 2.人脸认证 3.线下认证)
+     */
+    private Integer authMethod;
+
+    /**
+     * 人脸核验结果数据
+     */
+    private String verificationResult;
+
+    /**
+     * 标记
+     */
+    private String mark;
+
+    /**
+     * 是否健在(1.是  0.否)
+     */
+    private Integer isAlive;
+
+    /**
+     * 性别(1.男 2.女 3.其他)
+     */
+    private Integer sex;
+
+    /**
+     * 认证成功记录id
+     */
+    private Long authId;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 认证时间
+     */
+    private Date authDate;
+
+    /**
+     * 审核时间
+     */
+    private Date approvalDate;
+
+    /**
+     * 审核人员id
+     */
+    private Long approverId;
+
+    @Override
+    public String toString() {
+        return "ComPensionAuthHistoryRecordDO{" +
+                "id=" + id +
+                ", userId=" + userId +
+                ", name=" + name +
+                ", idCard=" + idCard +
+                ", brithday=" + brithday +
+                ", age=" + age +
+                ", domicile=" + domicile +
+                ", isAuth=" + isAuth +
+                ", createAt=" + createAt +
+                ", communityId=" + communityId +
+                ", elderliesId=" + elderliesId +
+                ", authPeriod=" + authPeriod +
+                ", submitUserId=" + submitUserId +
+                ", authMethod=" + authMethod +
+                ", verificationResult=" + verificationResult +
+                ", mark=" + mark +
+                ", isAlive=" + isAlive +
+                ", sex=" + sex +
+                ", authId=" + authId +
+                ", phone=" + phone +
+                ", authDate=" + authDate +
+                ", approvalDate=" + approvalDate +
+                ", approverId=" + approverId +
+                "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthPensionerDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthPensionerDO.java
new file mode 100644
index 0000000..82fb892
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthPensionerDO.java
@@ -0,0 +1,144 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+import lombok.Data;
+
+/**
+ * @title: ComPensionAuthPensionerDO 养老金人员表实体类
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老金人员表实体类
+ * @author: hans
+ * @date: 2021/09/01 16:30
+ */
+@Data
+@TableName("com_pension_auth_pensioners")
+@EncryptDecryptClass
+public class ComPensionAuthPensionerDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    /**
+     * 人口id
+     */
+    private Long populationId;
+    /**
+     * 街道id
+     */
+    private Long streetId;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+    /**
+     * 联系电话
+     */
+    private String phone;
+    /**
+     * 姓名
+     */
+    private String name;
+    /**
+     * 身份证号
+     */
+    @EncryptDecryptField
+    private String idCard;
+    /**
+     * 性别
+     */
+    private String sex;
+    /**
+     * 年龄
+     */
+    private Integer age;
+    /**
+     * 出生日期
+     */
+    private String birthday;
+    /**
+     * 人员类别(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上)
+     */
+    private Integer personnelCategory;
+    /**
+     * 是否养老登记(1.是  0.否)
+     */
+    private Integer isRegister;
+    /**
+     * 是否健在(1.是  0.否)
+     */
+    private Integer isAlive;
+    /**
+     * 居住地址
+     */
+    private String address;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 养老金开始领取日期
+     */
+    private Date receiveAllowanceBegin;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    private Date updateAt;
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+
+    /**
+     * 是否枚举(1.是 0.否)
+     */
+    public interface isOk{
+        int yes = 1;
+        int no = 0;
+    }
+
+    @Override
+    public String toString() {
+        return "ComPensionAuthPensionerDO{" +
+                "id=" + id +
+                ", populationId=" + populationId +
+                ", streetId=" + streetId +
+                ", communityId=" + communityId +
+                ", phone='" + phone + '\'' +
+                ", name='" + name + '\'' +
+                ", idCard='" + idCard + '\'' +
+                ", sex='" + sex + '\'' +
+                ", age=" + age +
+                ", birthday='" + birthday + '\'' +
+                ", personnelCategory=" + personnelCategory +
+                ", isRegister=" + isRegister +
+                ", isAlive=" + isAlive +
+                ", address='" + address + '\'' +
+                ", remark='" + remark + '\'' +
+                ", receiveAllowanceBegin=" + receiveAllowanceBegin +
+                ", createAt=" + createAt +
+                ", createBy=" + createBy +
+                ", updateAt=" + updateAt +
+                ", updateBy=" + updateBy +
+                '}';
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthRecordDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthRecordDO.java
new file mode 100644
index 0000000..50f061c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthRecordDO.java
@@ -0,0 +1,133 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @title: ComPensionAuthRecordDO 养老认证表实体类
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老认证表实体类
+ * @author: hans
+ * @date: 2021/09/01 16:31
+ */
+@Data
+@TableName("com_pension_auth_records")
+public class ComPensionAuthRecordDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    /**
+     *养老金用户id
+     */
+    private Long pensionerId;
+    /**
+     *提交用户id
+     */
+    private Long submitUserId;
+
+    /**
+     * 认证方式(1.视频认证 2.人脸认证 3.线下认证)
+     */
+    private Integer authMethod;
+
+    /**
+     *认证期数
+     */
+    private String authPeriod;
+
+    /**
+     * 人脸核验结果数据
+     */
+    private String verificationResult;
+
+    /**
+     * 认证视频
+     */
+    private String authVideo;
+    /**
+     * 现居地址
+     */
+    private String address;
+
+    /**
+     *审核人员id
+     */
+    private Long approverId;
+    /**
+     *审核状态(1.待审核 2.驳回 3.通过)
+     */
+    private Integer approvalStatus;
+    /**
+     *审核时间
+     */
+    private Date approvalDate;
+    /**
+     *标记
+     */
+    private String mark;
+    /**
+     *驳回原因
+     */
+    private String rejectReason;
+    /**
+     *认证状态(1.已认证 0.未认证)
+     */
+    private Integer authStatus;
+    /**
+     *认证时间
+     */
+    private Date authDate;
+    /**
+     *社区id
+     */
+    private Long communityId;
+    /**
+     *创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     *更新时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     *审核状态(1.待审核 2.驳回 3.通过)
+     */
+    public interface approvalStatus{
+        int dsh = 1;
+        int bh = 2;
+        int tg = 3;
+    }
+
+    /**
+     *认证状态(1.已认证 0.未认证)
+     */
+    public interface authStatus{
+        int rez = 1;
+        int wrz = 0;
+    }
+
+    /**
+     * 认证方式(1.视频认证 2.人脸认证 3.线下认证)
+     */
+    public interface authMethod{
+        int sprz = 1;
+        int rlrz = 2;
+        int xxrz = 3;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthStatisticsDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthStatisticsDO.java
new file mode 100644
index 0000000..026f4a1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthStatisticsDO.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @title: ComPensionAuthStatisticsDO 社区政务》养老认证》认证统计表
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社区政务》养老认证》认证统计表
+ * @author: txb
+ * @date: 2021/09/07 16:31
+ */
+
+@Data
+@TableName("com_pension_auth_statistics")
+public class ComPensionAuthStatisticsDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键id
+    */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+    * 年份
+    */
+    private Integer year;
+
+    /**
+    * 月份
+    */
+    private Integer month;
+
+    /**
+    * 总人数
+    */
+    private Integer sum;
+
+    /**
+    * 认证人数
+    */
+    private Integer authSum;
+
+    /**
+    * 未认证人数
+    */
+    private Integer noAuthSum;
+
+    /**
+    * 创建时间
+    */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+    * 社区id
+    */
+    private Long communityId;
+
+    @Override
+    public String toString() {
+            return "ComPensionAuthStatisticsDO{" +
+                    "id=" + id +
+                    ", year=" + year +
+                    ", month=" + month +
+                    ", sum=" + sum +
+                    ", authSum=" + authSum +
+                    ", noAuthSum=" + noAuthSum +
+                    ", createAt=" + createAt +
+                    ", communityId=" + communityId +
+            "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActivityService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActivityService.java
index d413ccc..41bad0b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActivityService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActivityService.java
@@ -167,6 +167,14 @@
     R getPictureList(Long userId);
 
     /**
+     * 获取系统预置图库  getSysPictureList
+     * @return    R   系统图库集
+     * @author txb
+     * @date 2021/8/27 13:33
+     */
+    R getSysPictureList(Integer type);
+
+    /**
      * 分页展示我的所有活动 时间倒序排列
      * 
      * @param comActActivityVO
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDiscussService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDiscussService.java
index 6cbf96f..22cfff7 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDiscussService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDiscussService.java
@@ -2,17 +2,19 @@
 
 import com.panzhihua.common.model.dtos.community.*;
 import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenDiscussListDTO;
+import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussDetailDTO;
+import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussPublishResultDTO;
 import com.panzhihua.common.model.vos.R;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
- * @description: 一起议
+ * @description: 议事投票
  * @author: huang.hongfa weixin hhf9596 qq 959656820
  * @create: 2021-01-22 14:50
  **/
 public interface ComActDiscussService {
     /**
-     * 一起议-新增
+     * 议事投票-新增
      * 
      * @param comActDiscussDTO
      *            新增参数
@@ -21,16 +23,23 @@
     R addDiscuss(ComActDiscussDTO comActDiscussDTO);
 
     /**
-     * 一起议-详情
-     * 
-     * @param id
-     *            主键
-     * @return ComActDiscussVO
+     * 议事投票-编辑
+     * @param comActDiscussDTO  请求参数
+     * @return  编辑结果
      */
-    R detailDiscuss(Long id);
+    R editDiscuss(ComActDiscussDTO comActDiscussDTO);
 
     /**
-     * 一起议-删除
+     * 议事投票-详情
+     * 
+     * @param discussDetailDTO
+     *            请求参数
+     * @return ComActDiscussVO
+     */
+    R detailDiscuss(ComActDiscussDetailDTO discussDetailDTO);
+
+    /**
+     * 议事投票-删除
      * 
      * @param id
      *            主键
@@ -39,7 +48,7 @@
     R deleteDiscuss(Long id);
 
     /**
-     * 一起议-回复
+     * 议事投票-回复
      * 
      * @param comActDiscussCommentDTO
      *            评论内容
@@ -48,7 +57,7 @@
     R addDiscussComment(ComActDiscussCommentDTO comActDiscussCommentDTO);
 
     /**
-     * 一起议-分页查询
+     * 议事投票-分页查询
      * 
      * @param pageComActDiscussDTO
      *            查询参数
@@ -57,7 +66,14 @@
     R pageDiscuss(PageComActDiscussDTO pageComActDiscussDTO);
 
     /**
-     * 一起议-评论-查看
+     * 议事投票-后台分页查询
+     * @param pageComActDiscussDTO  请求参数
+     * @return  议事投票列表
+     */
+    R pageDiscussAdmin(PageComActDiscussDTO pageComActDiscussDTO);
+
+    /**
+     * 议事投票-评论-查看
      * 
      * @param id
      *            主键
@@ -66,7 +82,14 @@
     R detailDiscusscomment(Long id);
 
     /**
-     * 一起议-评论-置顶
+     * 议事投票评论详情
+     * @param pageComActDiscussCommentDTO   请求参数
+     * @return  议事投票详情
+     */
+    R detailDiscussCommentAdmin(PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 议事投票-评论-置顶
      * 
      * @param id
      *            主键
@@ -75,7 +98,7 @@
     R putDiscussCommentTop(Long id);
 
     /**
-     * 一起议-评论-回复
+     * 议事投票-评论-回复
      * 
      * @param comActDiscussCommentDTO
      *            回复内容
@@ -84,7 +107,7 @@
     R addDiscussCommentBack(ComActDiscussCommentDTO comActDiscussCommentDTO);
 
     /**
-     * 一起议-评论-分页查询
+     * 议事投票-评论-分页查询
      * 
      * @param pageComActDiscussCommentDTO
      *            分页查询参数
@@ -93,7 +116,16 @@
     R pageDiscussComment(PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
 
     /**
-     * 一起议-分页查询 小程序
+     * 议事投票-评论-后台分页查询
+     *
+     * @param pageComActDiscussCommentDTO
+     *            分页查询参数
+     * @return ComActDiscussCommentVO
+     */
+    R pageDiscussCommentAdmin(PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 议事投票-分页查询 小程序
      * 
      * @param pageComActDiscussDTO
      *            查询参数
@@ -102,7 +134,7 @@
     R pageDiscussApplets(PageComActDiscussDTO pageComActDiscussDTO);
 
     /**
-     * 一起议-点赞、取消点赞
+     * 议事投票-点赞、取消点赞
      * 
      * @param comActDiscussUserDTO
      *            操作类型
@@ -111,7 +143,7 @@
     R putDiscussUser(ComActDiscussUserDTO comActDiscussUserDTO);
 
     /**
-     * 一起议-评论-分页查询 小程序
+     * 议事投票-评论-分页查询 小程序
      * 
      * @param pageComActDiscussCommentDTO
      *            分页参数
@@ -120,7 +152,7 @@
     R pageDiscussCommentApplets(PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
 
     /**
-     * 一起议-详情 小程序
+     * 议事投票-详情 小程序
      * 
      * @param id
      *            主键
@@ -131,7 +163,7 @@
     R detailDiscussApplets(Long id, Long userId);
 
     /**
-     * 一起议-投票
+     * 议事投票-投票
      * 
      * @param comActDiscussOptionUserDTO
      *            投票信息
@@ -140,7 +172,7 @@
     R addDiscussOptionUser(ComActDiscussOptionUserDTO comActDiscussOptionUserDTO);
 
     /**
-     * 一起议-评论-点赞、取消点赞
+     * 议事投票-评论-点赞、取消点赞
      * 
      * @param comActDiscussUserDTO
      *            评论点赞
@@ -149,11 +181,79 @@
     R putDiscussCommentUser(ComActDiscussCommentUserDTO comActDiscussUserDTO);
 
     /**
-     * 工作大屏-一起议列表
+     * 工作大屏-议事投票列表
      * 
      * @param discussListDTO
      *            请求参数
-     * @return 一起议列表
+     * @return 议事投票列表
      */
     R getScreenDiscussList(ScreenDiscussListDTO discussListDTO);
+
+    /**
+     * 议事投票后台公布结果
+     * @param publishResultDTO  请求参数
+     * @return  公布结果
+     */
+    R publishResultAdmin(ComActDiscussPublishResultDTO publishResultDTO);
+
+    /**
+     * 议事投票-评论/回复删除
+     * @param id    评论/回复id
+     * @return  删除结果
+     */
+    R deleteDiscussCommentAdmin(Long id);
+
+    /**
+     * 分页查询评论下回复列表
+     * @param discussDetailDTO  请求参数
+     * @return  回复列表
+     */
+    R discussCommentReplyAdmin(ComActDiscussDetailDTO discussDetailDTO);
+
+    /**
+     * 查询社区可发布议事投票权限配置
+     * @param communityId   社区id
+     * @return  社区可发布议事投票权限配置
+     */
+    R discussJurisdictionGet(Long communityId,Long userId);
+
+    /**
+     * 设置当前社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员)
+     * @param communityId   社区id
+     * @param value 需要设置的参数值
+     * @return  设置结果
+     */
+    R discussJurisdictionSet(Long communityId,String value);
+
+    /**
+     * 议事投票检测状态定时任务
+     * @return  执行结果
+     */
+    R timedTaskDiscussInspectStatus();
+
+    /**
+     * 一起议增加浏览量
+     * @param discussId
+     */
+    void increaseViewNum(Long discussId);
+
+    /**
+     * 将redis中前一天浏览量写入表中
+     * @return 执行结果
+     */
+    R writeDiscussViewNumToTable();
+
+    /**
+     * 公布/编辑一起议投票结果
+     * @param comActDiscussDTO
+     * @return
+     */
+    R editDiscussResult(ComActDiscussDTO comActDiscussDTO);
+
+    /**
+     * 一起议获取是否有发布权
+     * @param comActDiscussDTO
+     * @return
+     */
+    R getDiscussPermissions(ComActDiscussDTO comActDiscussDTO);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoService.java
index 0718226..e2acdf3 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoService.java
@@ -144,6 +144,17 @@
     R getUserReward(Long userId, Long communityId);
 
     /**
+     * 获取首页弹窗接口
+     *
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 首页弹窗接口
+     */
+    R getUserRewards(Long userId, Long communityId);
+
+    /**
      * 读取用户随手拍奖励
      * 
      * @param userId
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMicroWishOperationRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMicroWishOperationRecordService.java
new file mode 100644
index 0000000..796d1ca
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMicroWishOperationRecordService.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComActMicroWishOperationRecordDO;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @auther lyq
+ * @create 2021-08-27 10:28:04
+ * @describe 服务类
+ */
+public interface ComActMicroWishOperationRecordService extends IService<ComActMicroWishOperationRecordDO> {
+    /**
+     * 根据心愿id查询操作记录
+     * @param id
+     * @return
+     */
+    R getByWishId(Long id);
+
+    /**
+     * 添加微心愿操作记录
+     * @param content   操作内容
+     * @param userId    操作用户id
+     * @param wishId    微心愿id
+     * @param type      操作类型
+     * @param remark    操作备注
+     * @param imgUrl    反馈图片
+     */
+    void addOperationRecord(String content,Long userId,Long wishId,Integer type,String remark,String imgUrl);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMicroWishService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMicroWishService.java
index 0b9db65..66eccb0 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMicroWishService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMicroWishService.java
@@ -25,6 +25,8 @@
      */
     R pageMicroWish(ComActMicroWishVO comActMicroWishVO);
 
+    R pageMicroWishApplets(ComActMicroWishVO comActMicroWishVO);
+
     /**
      * 心愿详情
      * 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleService.java
index 22f0c97..fff9a1d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleService.java
@@ -212,4 +212,11 @@
      */
     R neighborCommentReplyByApp(ComActNeighborCommentReplyAppDTO commentReplyAppDTO);
 
+    /**
+     * 小程序-删除邻里圈
+     * @param circleTopicAppDTO 请求参数
+     * @return  删除结果
+     */
+    R deleteNeighborByApp(DeleteNeighborCircleAppDTO circleTopicAppDTO);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleTopicService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleTopicService.java
index 766f53f..49462b8 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleTopicService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleTopicService.java
@@ -2,7 +2,9 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.panzhihua.common.model.dtos.neighbor.AddNeighborCircleTopicAdminDTO;
+import com.panzhihua.common.model.dtos.neighbor.AddNeighborCircleTopicAppDTO;
 import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleTopicAdminDTO;
+import com.panzhihua.common.model.dtos.neighbor.DeleteNeighborCircleAppDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.service_community.model.dos.ComActNeighborCircleTopicDO;
 
@@ -47,6 +49,13 @@
      *            社区id
      * @return 邻里圈话题列表
      */
-    R getNeighborTopicByApp(Long communityId);
+    R getNeighborTopicByApp(Long communityId,Integer isZero,String name);
+
+    /**
+     * 小程序-用户新增话题
+     * @param circleTopicAppDTO 请求参数
+     * @return  新增结果
+     */
+    R addNeighborTopicByApp(AddNeighborCircleTopicAppDTO circleTopicAppDTO);
 
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveService.java
index 49f6aaf..1c80417 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveService.java
@@ -105,4 +105,11 @@
      */
     R getById(Long id,Long userId,Long recordId,Integer isBack);
 
+    /**
+     * 小程序查询所有进行中的预约登记
+     * @param communityId   社区id
+     * @return  社区所有进行中的预约登记列表
+     */
+    R reserveListApplets(Long communityId);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWorkGuideClassifyService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWorkGuideClassifyService.java
new file mode 100644
index 0000000..18ba89f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWorkGuideClassifyService.java
@@ -0,0 +1,57 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideClassifyVO;
+import com.panzhihua.service_community.model.dos.ComActWorkGuideClassifyDO;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * title: ComActWorkGuideClassifyService  社区》办事指南》分类管理服务类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》办事指南》分类管理服务类
+ *
+ * @author txb
+ * @date 2021/8/31 14:21
+ */
+public interface ComActWorkGuideClassifyService extends IService<ComActWorkGuideClassifyDO> {
+
+    /**
+     * 分页查询办事执念-分类管理 addWorkGuideClassify  分页查询办事执念-分类管理
+     * @param    comActWorkGuideClassifyVO   查询参数
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    R pageWorkGuideClassify(ComActWorkGuideClassifyVO comActWorkGuideClassifyVO);
+
+    /**
+     * 办事执念-分类管理新增或修改  addWorkGuideClassify  办事执念-分类管理新增或修改
+     * @param    comActWorkGuideClassifyVO   新增或修改参数
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    R addWorkGuideClassify(ComActWorkGuideClassifyVO comActWorkGuideClassifyVO);
+
+    /**
+     * 办事执念-分类管理删除  addWorkGuideClassify  办事执念-分类管理删除
+     * @param    workGuideClassifyId    办事执念-分类管理id
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    R deleteWorkGuideClassify(Long workGuideClassifyId);
+
+    /**
+     * 办事指南-分类管理列表查询  getWorkGuideClassifyList  办事指南-分类管理列表查询
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    R getWorkGuideClassifyList();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWorkGuideService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWorkGuideService.java
index a7e6527..528f183 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWorkGuideService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWorkGuideService.java
@@ -53,4 +53,18 @@
      * @return 删除结果
      */
     R delectWorkGuide(Long workGuideId);
+
+    /**
+     * 办事指南列表-按分类查询
+     * @param pageActWorkGuideDTO   请求参数
+     * @return  办事指南分类列表
+     */
+    R listWorkGuide(PageActWorkGuideDTO pageActWorkGuideDTO);
+
+    /**
+     * 根据办事指南分类id查询办事指南列表
+     * @param classifyId   办事指南分类id
+     * @return  办事指南列表数据
+     */
+    R listWorkGuideByClassifyId(Long classifyId);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthElderliesService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthElderliesService.java
new file mode 100644
index 0000000..1f47c68
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthElderliesService.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComElderAuthElderliesDO;
+
+/**
+ * title: ComElderAuthElderliesService  社区政务》高龄老人认证》高龄老人表服务类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区政务》高龄老人认证》高龄老人表服务类
+ *
+ * @author txb
+ * @date 2021/9/01 14:12
+ */
+public interface ComElderAuthElderliesService extends IService<ComElderAuthElderliesDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthRecordsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthRecordsService.java
new file mode 100644
index 0000000..286ecb2e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthRecordsService.java
@@ -0,0 +1,117 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO;
+import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO;
+import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
+import com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComElderAuthRecordImportExcelVO;
+import com.panzhihua.common.model.vos.community.ComElderAuthRecordVO;
+import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+/**
+ * title: ComElderAuthRecordsService  社区政务》高龄老人认证》认证记录表服务类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区政务》高龄老人认证》认证记录表服务类
+ *
+ * @author txb
+ * @date 2021/9/01 14:12
+ */
+public interface ComElderAuthRecordsService extends IService<ComElderAuthRecordsDO> {
+
+
+    /**
+     * 分页查询高龄老人认证记录  pageElderAuthRecords  分页查询高龄老人认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    R pageElderAuthRecords(PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
+
+    /**
+     * 根据高龄认证记录id查询详情 detailElderAuthRecords  根据高龄认证记录id查询详情
+     * @param    authRecordId   高龄认证记录id
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    R detailElderAuthRecords(Long authRecordId);
+
+    /**
+     * 高龄认证审核 examineElderAuthRecords  高龄认证审核
+     * @param    comElderAuthRecordVO   高龄认证审核参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    R examineElderAuthRecords(ComElderAuthRecordVO comElderAuthRecordVO);
+
+    /**
+     * 高龄认证标记 examineElderAuthRecords  高龄认证标记
+     * @param    comElderAuthRecordVO   高龄认证标记参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    R signElderAuthRecords(ComElderAuthRecordVO comElderAuthRecordVO);
+
+    /**
+     * 根据高龄认证记录id批量查询 getElderAuthRecordsByIds  根据高龄认证记录id批量查询
+     * @param    ids   高龄认证记录id集合
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    R getElderAuthRecordsByIds(@RequestBody List<Long> ids);
+
+    /**
+     * 批量导入高龄老人线下认证记录  listSaveElderAuthRecordExcelVO  批量导入高龄老人线下认证记录
+     * @param    list  高龄老人线下认证记录数据
+     * @param    communityId   社区id
+     * @param    userId   登录人id
+     * @return    R   导入结果
+     * @author txb
+     * @date 2021/9/01 15:03
+     */
+    R listSaveElderAuthRecordExcelVO(List<ComElderAuthRecordImportExcelVO> list, Long communityId, Long userId);
+
+    /**
+     * 导出高龄认证记录 exportElderAuthRecordsStatistic  导出高龄认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    R exportElderAuthRecordsStatistic(PageElderAuthStatisticDTO pageElderAuthRecordsDTO);
+
+    /**
+     * 定时任务每月1号0点统计高龄老人本期应该认证总人数
+     * @return  执行结果
+     */
+    R timedTaskElderAuthStatisticsJobHandler();
+    /**
+     * 新增高龄认证
+     * @param addIdentityAuthDTO 请求参数
+     * @return 新增结果
+     */
+    R addElderAuth(AddIdentityAuthDTO addIdentityAuthDTO);
+
+    /**
+     * 分页查询高龄认证记录
+     * @param pageIdentityAuthRecordDTO 查询参数
+     * @return 高龄认证记录列表
+     */
+    R queryRecordWithPage(PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO);
+
+    /**
+     * 获取高龄认证详情
+     * @param identityAuthId 认证id
+     * @return 认证记录详情
+     */
+    R retrieveElderAuthDetail(Long identityAuthId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java
index e8d9dd6..66c5fd7 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java
@@ -19,6 +19,10 @@
 import com.panzhihua.common.model.vos.user.ComMngTagVO;
 import com.panzhihua.common.model.vos.user.UserElectronicFileVO;
 import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 
 /**
  * 实有人口Service
@@ -58,7 +62,7 @@
      *            实有人口id
      * @return 实有人口详情
      */
-    R detailPopulation(Long populationId);
+    R detailPopulation(Long populationId, Long communityId);
 
     /**
      * 分页查询实有人口
@@ -203,6 +207,26 @@
     R listSaveLowSecurityPopulation(List<ComMngPopulationLowSecurityExcelVO> list, Long communityId, Long userId);
 
     /**
+     * 批量导入高龄老人  listSavePopulationElderExcelVO  批量导入高龄老人
+     * @param    list  高龄老人数据
+     * @param    communityId   社区id
+     * @return    R   导入结果
+     * @author txb
+     * @date 2021/9/01 15:03
+     */
+    R listSaveEdlerPopulation(List<ComMngPopulationElderExcelVO> list, Long communityId, Long userId);
+
+    /**
+     * 批量导入养老金人员  listSavePopulationPensionExcelVO  批量导入养老金人员
+     * @param    list  养老金人员数据
+     * @param    communityId   社区id
+     * @return    R   导入结果
+     * @author txb
+     * @date 2021/9/01 15:03
+     */
+    R listSavePensionPopulation(List<ComMngPopulationPensionExcelVO> list, Long communityId, Long userId);
+
+    /**
      * 确认导入实有人口(有则更新,无则新建)
      *
      * @param list
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthHistoryRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthHistoryRecordService.java
new file mode 100644
index 0000000..8aff09c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthHistoryRecordService.java
@@ -0,0 +1,38 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.elder.ElderAuthStatisticHeaderDTO;
+import com.panzhihua.common.model.dtos.community.elder.PagePensionAuthStatisticDTO;
+import com.panzhihua.common.model.dtos.community.elder.SignElderAuthStatisticDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComPensionAuthHistoryRecordDO;
+
+/**
+ * @author lyq
+ * @date  2021-09-18 15:07:12
+ * @deprecated  养老认证历史记录表服务类
+ */
+public interface ComPensionAuthHistoryRecordService extends IService<ComPensionAuthHistoryRecordDO> {
+
+    /**
+     * 养老认证统计-分页查询
+     * @param pensionAuthStatisticDTO   请求参数
+     * @return  养老认证统列表
+     */
+    R pagePensionAuthStatisticAdmin(PagePensionAuthStatisticDTO pensionAuthStatisticDTO);
+
+    /**
+     * 养老认证记标记
+     * @param signElderAuthStatisticDTO 请求参数
+     * @return  标记结果
+     */
+    R signPensionAuthStatisticAdmin(SignElderAuthStatisticDTO signElderAuthStatisticDTO);
+
+    /**
+     * 养老认证表头统计
+     * @param statisticHeaderDTO    请求参数
+     * @return  统计结果
+     */
+    R getPensionAuthHeaderStatisticAdmin(ElderAuthStatisticHeaderDTO statisticHeaderDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthPensionerService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthPensionerService.java
new file mode 100644
index 0000000..b65c9f3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthPensionerService.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComPensionAuthPensionerDO;
+
+/**
+ * @title: ComPensionAuthPensionerService
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老金人员服务类
+ * @author: hans
+ * @date: 2021/09/01 17:16
+ */
+public interface ComPensionAuthPensionerService extends IService<ComPensionAuthPensionerDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthRecordService.java
new file mode 100644
index 0000000..4798f06
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthRecordService.java
@@ -0,0 +1,133 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO;
+import com.panzhihua.common.model.dtos.community.EldersAuthTypeQueryDTO;
+import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
+import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportExcelVO;
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordVO;
+import com.panzhihua.service_community.model.dos.ComPensionAuthRecordDO;
+
+/**
+ * @title: ComPensionAuthRecordService
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老认证记录服务类
+ * @author: hans
+ * @date: 2021/09/01 17:33
+ */
+public interface ComPensionAuthRecordService extends IService<ComPensionAuthRecordDO> {
+
+    /**
+     * 分页查询养老金人员认证记录  pagePensionAuthRecords  分页查询养老金人员认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/07 14:03
+     */
+    R pagePensionAuthRecords(PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
+
+    /**
+     * 根据养老认证记录id查询详情 detailPensionAuthRecords  根据养老认证记录id查询详情
+     * @param    authRecordId   养老认证记录id
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/07 11:03
+     */
+    R detailPensionAuthRecords(Long authRecordId);
+
+    /**
+     * 养老认证审核 examinePensionAuthRecords  养老认证审核
+     * @param    comPensionAuthRecordVO   养老认证审核参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/07 11:03
+     */
+    R examinePensionAuthRecords(ComPensionAuthRecordVO comPensionAuthRecordVO);
+
+    /**
+     * 养老认证标记 signPensionAuthRecords  养老认证标记
+     * @param    comPensionAuthRecordVO   养老认证标记参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    R signPensionAuthRecords(ComPensionAuthRecordVO comPensionAuthRecordVO);
+
+    /**
+     * 根据养老认证记录id批量查询 getPensionAuthRecordsByIds  根据养老认证记录id批量查询
+     * @param    ids   养老认证记录id集合
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    R getPensionAuthRecordsByIds(List<Long> ids);
+
+    /**
+     * 批量导入养老线下认证记录  listSavePensionAuthRecordExcelVO  批量导入养老线下认证记录
+     * @param    list  养老线下认证记录数据
+     * @param    communityId   社区id
+     * @param    userId   登录人id
+     * @return    R   导入结果
+     * @author txb
+     * @date 2021/9/08 10:03
+     */
+    R listSavePensionAuthRecordExcelVO(List<ComPensionAuthRecordImportExcelVO> list, Long communityId, Long userId);
+
+    /**
+     * 导出养老认证记录 exportPensionAuthRecordsStatistic  导出养老认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    R exportPensionAuthRecordsStatistic(PageElderAuthRecordsDTO pageElderAuthRecordsDTO);
+
+    /**
+     * 设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验) setPensionAuthType  设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验)
+     * @param    communityId   社区id
+     * @param    type         检验类型
+     * @return    R  设置结果
+     * @author txb
+     * @date 2021/9/10 16:03
+     */
+    R setPensionAuthType(Long communityId, Integer type);
+
+    /**
+     * 查询养老认证社区认证方式 setPensionAuthType  查询养老认证社区认证方式
+     * @param    eldersAuthTypeQueryDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/10 16:03
+     */
+    R communityPensionAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO);
+
+    /**
+     * 定时任务每年3月1号0点统计养老认证本期应该认证总人数
+     * @return  执行结果
+     */
+    R timedTaskPensionAuthStatisticsJobHandler();
+    /**
+     * 新增养老认证
+     * @param addIdentityAuthDTO 请求参数
+     * @return 新增结果
+     */
+    R addPensionAuth(AddIdentityAuthDTO addIdentityAuthDTO);
+
+    /**
+     * 分页查询养老认证记录
+     * @param pageIdentityAuthRecordDTO 查询参数
+     * @return 养老认证记录列表
+     */
+    R queryRecordWithPage(PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO);
+
+    /**
+     * 获取养老认证详情
+     * @param identityAuthId 认证id
+     * @return 认证记录详情
+     */
+    R retrievePensionAuthDetail(Long identityAuthId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthStatisticsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthStatisticsService.java
new file mode 100644
index 0000000..9fdc109
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthStatisticsService.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComPensionAuthStatisticsDO;
+
+/**
+ * @title: ComPensionAuthStatisticsService
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老认证统计服务类
+ * @author: txb
+ * @date: 2021/09/07 17:33
+ */
+public interface ComPensionAuthStatisticsService extends IService<ComPensionAuthStatisticsDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwDangerReportService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwDangerReportService.java
index 636e7f1..9f75dc1 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwDangerReportService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwDangerReportService.java
@@ -3,11 +3,15 @@
 import java.util.List;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.ComSwDangerReportEditDTO;
 import com.panzhihua.common.model.dtos.community.ComSwDangerReportHandleDTO;
 import com.panzhihua.common.model.dtos.community.ComSwDangerReportRectifyDTO;
 import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.service_community.model.dos.ComSwDangerReportDO;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * @auther txb
@@ -26,6 +30,15 @@
     R pageDangerReport(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
 
     /**
+     * 编辑隐患报告 editDangerReport  编辑隐患报告
+     * @param    comSwDangerReportEditDTO   编辑隐患报告参数
+     * @return    R  编辑结果
+     * @author txb
+     * @date 2021/9/08 17:03
+     */
+    R editDangerReport(ComSwDangerReportEditDTO comSwDangerReportEditDTO);
+
+    /**
      * 根据隐患报告id查询详情
      *
      * @param dangerReportId
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwPatrolRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwPatrolRecordService.java
index 7b4fb8b..2a93946 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwPatrolRecordService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwPatrolRecordService.java
@@ -2,9 +2,13 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordAddDTO;
+import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordEditDTO;
 import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.service_community.model.dos.ComSwPatrolRecordDO;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * @auther txb
@@ -32,6 +36,15 @@
     R addPatrolRecord(ComSwPatrolRecordAddDTO comSwPatrolRecordAddDTO);
 
     /**
+     * 编辑巡查记录 editPatrolRecord  编辑巡查记录
+     * @param    comSwPatrolRecordEditDTO   编辑巡查记录参数
+     * @return    R  编辑结果
+     * @author txb
+     * @date 2021/9/08 17:03
+     */
+    R editPatrolRecord(ComSwPatrolRecordEditDTO comSwPatrolRecordEditDTO);
+
+    /**
      * 根据巡查记录id查询详情
      *
      * @param patrolRecordId
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwSafetyWorkRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwSafetyWorkRecordService.java
index 00f1008..bbcc82f 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwSafetyWorkRecordService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwSafetyWorkRecordService.java
@@ -2,8 +2,12 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
+import com.panzhihua.common.model.dtos.community.ComSwSafetyWorkEditDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.service_community.model.dos.ComSwSafetyWorkRecordDO;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * @auther txb
@@ -22,6 +26,15 @@
     R pageSafetyWorkRecord(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
 
     /**
+     * 编辑安全工作记录 editSafetyWork  编辑安全工作记录
+     * @param    comSwSafetyWorkEditDTO   编辑安全工作记录参数
+     * @return    R  编辑结果
+     * @author txb
+     * @date 2021/9/08 17:03
+     */
+    R editSafetyWork(ComSwSafetyWorkEditDTO comSwSafetyWorkEditDTO);
+
+    /**
      * 根据安全工作记录id查询详情
      *
      * @param safetyWorkRecordId
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EldersAuthService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EldersAuthService.java
index 022c2cb..bb420a5 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EldersAuthService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EldersAuthService.java
@@ -3,6 +3,9 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.dtos.community.elder.ElderAuthStatisticHeaderDTO;
+import com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO;
+import com.panzhihua.common.model.dtos.community.elder.SignElderAuthStatisticDTO;
 import com.panzhihua.common.model.dtos.elders.ComEldersAuthGetResultDTO;
 import com.panzhihua.common.model.dtos.elders.ComEldersAuthPageDTO;
 import com.panzhihua.common.model.dtos.elders.ComEldersAuthUserAddAppDTO;
@@ -169,4 +172,48 @@
 
     R getAuthHistoryExport(PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO);
 
+    R timedTaskEldersAuthJobHandler();
+
+    /**
+     * 检测上月所有视频认证记录,取最后一条记录为认证成功记录
+     * @return  执行结果
+     */
+    R timedTaskEldersRecordAuthJobHandler();
+
+    /**
+     * 设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验) setPensionAuthType  设置当前社区养老认证方式:核验类型(1.视频认证 2.人脸核验)
+     * @param    communityId   社区id
+     * @param    type         检验类型
+     * @return    R  设置结果
+     */
+    R setAuthType(Long communityId, Integer type);
+
+    /**
+     * 查询养老认证社区认证方式 setPensionAuthType  查询养老认证社区认证方式
+     * @param    eldersAuthTypeQueryDTO   查询参数
+     * @return    R  查询结果
+     */
+    R getAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO);
+
+    /**
+     * 高龄认证统计-分页查询
+     * @param pageElderAuthStatisticDTO 请求参数
+     * @return  高龄认证统计列表
+     */
+    R pageAuthStatisticAdmin(PageElderAuthStatisticDTO pageElderAuthStatisticDTO);
+
+    /**
+     * 高龄认证统计-标记
+     * @param signElderAuthStatisticDTO 请求参数
+     * @return  标记结果
+     */
+    R signAuthStatisticAdmin(SignElderAuthStatisticDTO signElderAuthStatisticDTO);
+
+    /**
+     * 高龄认证统计-统计表头数据
+     * @param statisticHeaderDTO 请求参数
+     * @return  统计表头数据
+     */
+    R getAuthHeaderStatisticAdmin(ElderAuthStatisticHeaderDTO statisticHeaderDTO);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/SysConfService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/SysConfService.java
index 29d8e63..dbd0f20 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/SysConfService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/SysConfService.java
@@ -1,6 +1,7 @@
 package com.panzhihua.service_community.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
 import com.panzhihua.service_community.model.dos.SysConfDO;
 
 /**
@@ -10,4 +11,30 @@
  */
 public interface SysConfService extends IService<SysConfDO> {
 
+    /**
+     * 根据系统code以及社区id查询配置表value值
+     *
+     * @param key         系统code
+     * @param communityId 社区id
+     * @return 系统配置value值
+     */
+    R getSysConfValue(String key, Long communityId);
+
+    /**
+     * 新增系统code配置数据
+     *
+     * @param key         系统code
+     * @param communityId 社区id
+     * @return 新增结果
+     */
+    R addSysConfValue(String key, Long communityId, String name, String value);
+
+    /**
+     * 编辑系统配置
+     * @param communityId   社区id
+     * @param status    配置值
+     * @return  编辑结果
+     */
+    R editSysConfValue(Long communityId, Integer status);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActEvaluateServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActEvaluateServiceImpl.java
index 8381f04..9aff4c0 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActEvaluateServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActEvaluateServiceImpl.java
@@ -1,8 +1,12 @@
 package com.panzhihua.service_community.service.impl;
 
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
@@ -18,9 +22,11 @@
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.ComActActEvaluateVO;
 import com.panzhihua.service_community.dao.ComActActEvaluateDAO;
+import com.panzhihua.service_community.dao.ComActActRegistDAO;
 import com.panzhihua.service_community.dao.ComActActSignDAO;
 import com.panzhihua.service_community.dao.ComActActivityDAO;
 import com.panzhihua.service_community.model.dos.ComActActEvaluateDO;
+import com.panzhihua.service_community.model.dos.ComActActRegistDO;
 import com.panzhihua.service_community.model.dos.ComActActSignDO;
 import com.panzhihua.service_community.model.dos.ComActActivityDO;
 import com.panzhihua.service_community.service.ComActActEvaluateService;
@@ -43,6 +49,8 @@
     private ComActActivityDAO comActActivityDAO;
     @Resource
     private ComActActSignDAO comActActSignDAO;
+    @Resource
+    private ComActActRegistDAO comActActRegistDAO;
     /**
      * 社区活动评价
      *
@@ -51,11 +59,41 @@
      */
     @Override
     public R activityEvaluate(ComActActEvaluateVO comActActEvaluateVO) {
+        Long activityId = comActActEvaluateVO.getActivityId();
+        Long userId = comActActEvaluateVO.getUserId();
+        if (isNull(activityId)) {
+            return R.fail("参数有误");
+        }
+        ComActActivityDO comActActivityDO = comActActivityDAO.selectById(activityId);
+        if (isNull(comActActivityDO)) {
+            return R.fail("活动不存在");
+        }
+        Date beginAt = comActActivityDO.getBeginAt();
+        Date nowDate = new Date();
+        Integer isQrCode = comActActivityDO.getIsQrCode();
+        if (nonNull(isQrCode) && isQrCode.equals(1)) {
+            //需要签到类型
+            int registCount = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>()
+                    .lambda().eq(ComActActRegistDO::getUserId, userId).eq(ComActActRegistDO::getActivityId, activityId));
+            if (registCount <= 0) {
+                //未签到,不能评价
+                return R.fail("未签到,不能评价");
+            }
+        } else {
+            if (nowDate.before(beginAt)) {
+                return R.fail("活动还未开始,暂不支持评价");
+            }
+        }
+        ComActActEvaluateDO currentUserEvaluateForThisActivity = this.baseMapper.selectOne(new QueryWrapper<ComActActEvaluateDO>()
+                .lambda().eq(ComActActEvaluateDO::getActivityId, activityId).eq(ComActActEvaluateDO::getUserId, userId));
+        if (Objects.nonNull(currentUserEvaluateForThisActivity)) {
+            return R.fail("该用户已评论过了,请勿重复评论");
+        }
         ComActActEvaluateDO comActActEvaluateDO = new ComActActEvaluateDO();
         BeanUtils.copyProperties(comActActEvaluateVO, comActActEvaluateDO);
         int result = this.baseMapper.insert(comActActEvaluateDO);
         if (result < 0) {
-            return R.fail();
+            return R.fail("评论失败,请重试");
         }
         return R.ok();
     }
@@ -69,7 +107,7 @@
         List<ComActActivityDO> comActActivityDOS = comActActivityDAO.selectList(new QueryWrapper<ComActActivityDO>().lambda()
                 .eq(ComActActivityDO::getStatus, 5)
                 .eq(ComActActivityDO::getIsDefaultPraise, 0)
-                .le(ComActActivityDO::getEndAt, DateUtils.addDays(new Date(), 7)));
+                .le(ComActActivityDO::getEndAt, DateUtils.addDays(new Date(), -7)));
         //获取报名记录
         if (!ObjectUtils.isEmpty(comActActivityDOS)) {
             List<Long> activityIds = comActActivityDOS.stream().map(ComActActivityDO::getId).collect(Collectors.toList());
@@ -83,6 +121,7 @@
                     comActActEvaluateDO.setUserId(comActActSignDO.getUserId());
                     comActActEvaluateDO.setCreateAt(new Date());
                     comActActEvaluateDO.setStarLevel(5);
+                    comActActEvaluateDO.setEvaluateContent("系统默认好评!");
                     return comActActEvaluateDO;
                 }).collect(Collectors.toList());
                 boolean result = this.saveBatch(comActActEvaluateDOList);
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
index a9cffc8..5673d1d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
@@ -1,21 +1,24 @@
 package com.panzhihua.service_community.service.impl;
 
+import static java.util.Objects.isNull;
+import static org.apache.commons.lang3.StringUtils.isBlank;
+import static org.apache.commons.lang3.StringUtils.isNotBlank;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.DecimalFormat;
-import java.util.*;
-import java.util.concurrent.TimeUnit;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 
-import com.panzhihua.common.model.vos.community.*;
-import com.panzhihua.common.model.vos.screen.ComActPopulationCultureVO;
-import com.panzhihua.service_community.dao.*;
-import com.panzhihua.service_community.model.dos.ComActActEvaluateDO;
-import com.panzhihua.service_community.model.dos.ComActActPictureDO;
 import org.apache.commons.lang3.time.DateUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.data.redis.core.StringRedisTemplate;
-import org.springframework.data.redis.core.ValueOperations;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
@@ -30,15 +33,26 @@
 import com.panzhihua.common.model.vos.IndexDataVO;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ActivitySignVO;
+import com.panzhihua.common.model.vos.community.ComActActEvaluateVO;
+import com.panzhihua.common.model.vos.community.ComActActPictureVO;
+import com.panzhihua.common.model.vos.community.ComActActRegistVO;
+import com.panzhihua.common.model.vos.community.ComActActivityStatisticsVO;
+import com.panzhihua.common.model.vos.community.ComActActivityVO;
+import com.panzhihua.common.model.vos.community.CommunityActivitiesVO;
+import com.panzhihua.common.model.vos.community.CommunityGovernanceTrendsVO;
+import com.panzhihua.common.model.vos.community.SignactivityVO;
 import com.panzhihua.common.model.vos.community.screen.work.ActActivityListVO;
 import com.panzhihua.common.service.user.UserService;
 import com.panzhihua.common.utlis.WxUtil;
 import com.panzhihua.common.utlis.WxXCXTempSend;
 import com.panzhihua.service_community.dao.ComActActEvaluateDAO;
+import com.panzhihua.service_community.dao.ComActActPictureDAO;
 import com.panzhihua.service_community.dao.ComActActRegistDAO;
 import com.panzhihua.service_community.dao.ComActActSignDAO;
 import com.panzhihua.service_community.dao.ComActActivityDAO;
 import com.panzhihua.service_community.model.dos.ComActActEvaluateDO;
+import com.panzhihua.service_community.model.dos.ComActActPictureDO;
 import com.panzhihua.service_community.model.dos.ComActActRegistDO;
 import com.panzhihua.service_community.model.dos.ComActActSignDO;
 import com.panzhihua.service_community.model.dos.ComActActivityDO;
@@ -96,7 +110,7 @@
         if (status.intValue() == 2) {// 点击‘保存并发布’ 按钮
             // 报名结束时间大于当前时间则设置为“进行中”
             if (comActActivityVO.getSignUpEnd() != null && now.getTime() < comActActivityVO.getSignUpEnd().getTime()) {
-                comActActivityDO.setStatus(4);
+                comActActivityDO.setStatus(3);
             }
         }
 
@@ -114,6 +128,7 @@
         comActActPictureDO.setActivityId(activityId);
         comActActPictureDO.setUserId(comActActivityVO.getUserId());
         comActActPictureDO.setUploadPicture(comActActivityVO.getCover());
+        comActActPictureDO.setSysFlag(0);
         comActActPictureDAO.insert(comActActPictureDO);
         return R.ok(activityId);
     }
@@ -164,7 +179,7 @@
         // 结束时间大于当前时间则设置为“进行中”
         Date now = new Date();
         if (comActActivityVO.getSignUpEnd() != null && now.getTime() < comActActivityVO.getSignUpEnd().getTime()) {
-            comActActivityDO.setStatus(4);
+            comActActivityDO.setStatus(3);
         }
         boolean b = this.updateById(comActActivityDO);
         if (b) {
@@ -194,15 +209,15 @@
         page.setSize(pageSize);
         page.setCurrent(pageNum);
         IPage<ComActActivityVO> iPage = comActActivityDAO.pageActivity(page, comActActivityVO);
-        List<ComActActivityVO> records = iPage.getRecords();
-        if (!ObjectUtils.isEmpty(records)) {
-            records.forEach(comActActivityVO1 -> {
-                Integer status = comActActivityVO1.getStatus();
-                if (status.intValue() == 3) {
-                    comActActivityVO1.setStatus(4);
-                }
-            });
-        }
+//        List<ComActActivityVO> records = iPage.getRecords();
+//        if (!ObjectUtils.isEmpty(records)) {
+//            records.forEach(comActActivityVO1 -> {
+//                Integer status = comActActivityVO1.getStatus();
+//                if (status.intValue() == 3) {
+//                    comActActivityVO1.setStatus(4);
+//                }
+//            });
+//        }
         return R.ok(iPage);
     }
 
@@ -215,10 +230,12 @@
      */
     @Override
     public R releaseActivity(ComActActivityVO comActActivityVO) {
-        ComActActivityDO comActActivityDO = new ComActActivityDO();
-        comActActivityDO.setId(comActActivityVO.getId());
+        ComActActivityDO comActActivityDO = comActActivityDAO.selectById(comActActivityVO.getId());
         comActActivityDO.setPublishAt(comActActivityVO.getPublishAt());
-        comActActivityDO.setStatus(comActActivityVO.getStatus());
+        comActActivityDO.setStatus(3);
+        if (comActActivityVO.getPublishAt().after(comActActivityDO.getSignUpEnd())) {
+            comActActivityVO.setStatus(4);
+        }
         int update = comActActivityDAO.updateById(comActActivityDO);
         if (update > 0) {
             return R.ok();
@@ -361,6 +378,21 @@
         return R.ok(comActActPictureVOS);
     }
 
+    @Override
+    public R getSysPictureList(Integer type) {
+        List<ComActActPictureVO> comActActPictureVOS = new ArrayList<>();
+        List<ComActActPictureDO> comActActPictureDOS = comActActPictureDAO.selectList(new QueryWrapper<ComActActPictureDO>().lambda().
+                eq(ComActActPictureDO::getSysFlag, 1).eq(ComActActPictureDO :: getType, type));
+        if (comActActPictureDOS != null && comActActPictureDOS.size() != 0) {
+            comActActPictureDOS.forEach(comActActPictureDO -> {
+                ComActActPictureVO comActActPictureVO = new ComActActPictureVO();
+                BeanUtils.copyProperties(comActActPictureDO, comActActPictureVO);
+                comActActPictureVOS.add(comActActPictureVO);
+            });
+        }
+        return R.ok(comActActPictureVOS);
+    }
+
     /**
      * 分页展示我的所有活动 时间倒序排列
      *
@@ -398,7 +430,11 @@
         Integer type = signactivityVO.getType();
         Long userId = signactivityVO.getUserId();
         Integer isVolunteer = signactivityVO.getIsVolunteer();
-
+        // 查询社区活动
+        ComActActivityDO actActivityDO = this.baseMapper.selectById(activityId);
+        if (isNull(actActivityDO)) {
+            return R.fail("活动不存在");
+        }
         int num = 0;
         if (1 == type) {
             R<LoginUserInfoVO> userInfoR = userService.getUserInfoByUserId(String.valueOf(userId));
@@ -409,21 +445,31 @@
                 return R.fail("只有志愿者才能报名");
             }
 
-            // 查询社区活动
-            ComActActivityDO actActivityDO = this.baseMapper.selectById(activityId);
-            if (actActivityDO != null) {
-                // 查询当前活动下参与志愿者/居民数量
-                Integer count = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda()
-                    .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getIsVolunteer, isVolunteer));
-                if (isVolunteer.equals(1) && actActivityDO.getVolunteerMax() <= count
-                    && !actActivityDO.getVolunteerMax().equals(-1)) {
-                    return R.fail("志愿者报名人数已满");
-                }
+            // 查询当前活动下参与志愿者/居民数量
+            Integer count = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda()
+                .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getIsVolunteer, isVolunteer));
+            if (isVolunteer.equals(1) && actActivityDO.getVolunteerMax() <= count
+                && !actActivityDO.getVolunteerMax().equals(-1)) {
+                return R.fail("志愿者报名人数已满");
+            }
 
-                if (isVolunteer.equals(0) && actActivityDO.getParticipantMax() <= count
-                    && !actActivityDO.getParticipantMax().equals(-1)) {
-                    return R.fail("居民报名人数已满");
+            //审查用户是否有该活动报名权限(是否活动指定参与人群)
+            String currentUserTags = loginUserInfoVO.getTags();
+            String attendPeople = actActivityDO.getAattendPeople();
+            if (isVolunteer.intValue() == 0 && isNotBlank(attendPeople)) {
+                if (isBlank(currentUserTags)) {
+                    return R.fail("您不是指定参与人群!");
                 }
+                List<String> currentUserTagList = Arrays.asList(currentUserTags.split(","));
+                boolean checkResult = currentUserTagList.stream().anyMatch(currentUserTag -> attendPeople.contains(currentUserTag));
+                if (!checkResult) {
+                    return R.fail("您不是指定参与人群!");
+                }
+            }
+
+            if (isVolunteer.equals(0) && actActivityDO.getParticipantMax() <= count
+                && !actActivityDO.getParticipantMax().equals(-1)) {
+                return R.fail("居民报名人数已满");
             }
 
             ComActActSignDO comActActSignDO = new ComActActSignDO();
@@ -512,33 +558,34 @@
      */
     @Override
     public R timedTaskActActivity() {
-        List<Long> longs = comActActivityDAO.selectTimedTaskActActivity();
-        if (ObjectUtils.isEmpty(longs)) {
-            return R.fail("没有需要取消的社区活动");
-        }
-        List<ComActActivityDO> comActActivityDOS = comActActivityDAO.selectBatchIds(longs);
-        List<ComActActivityVO> comActActivityVOS = new ArrayList<>();
-        if (!ObjectUtils.isEmpty(comActActivityDOS)) {
-            comActActivityDOS.forEach(comActActivityDO -> {
-                ComActActivityVO comActActivityVO = new ComActActivityVO();
-                BeanUtils.copyProperties(comActActivityDO, comActActivityVO);
-                List<ComActActSignDO> comActActSignDOS = comActActSignDAO.selectList(new QueryWrapper<ComActActSignDO>()
-                    .lambda().eq(ComActActSignDO::getActivityId, comActActivityDO.getId()));
-                if (!ObjectUtils.isEmpty(comActActSignDOS)) {
-                    List<ActivitySignVO> activitySignVOList = new ArrayList<>();
-                    comActActSignDOS.forEach(comActActSignDO -> {
-                        ActivitySignVO activitySignVO = new ActivitySignVO();
-                        BeanUtils.copyProperties(comActActSignDO, activitySignVO);
-                        activitySignVOList.add(activitySignVO);
-                        comActActivityVO.setActivitySignVOList(activitySignVOList);
-                    });
-                }
-                comActActivityVOS.add(comActActivityVO);
-            });
-            int num = comActActivityDAO.updateIdBatch(longs);
-            log.info("定时任务--一共取消社区活动数量【{}】", num);
-        }
-        return R.ok(comActActivityVOS);
+//        List<Long> longs = comActActivityDAO.selectTimedTaskActActivity();
+//        if (ObjectUtils.isEmpty(longs)) {
+//            return R.fail("没有需要取消的社区活动");
+//        }
+//        List<ComActActivityDO> comActActivityDOS = comActActivityDAO.selectBatchIds(longs);
+//        List<ComActActivityVO> comActActivityVOS = new ArrayList<>();
+//        if (!ObjectUtils.isEmpty(comActActivityDOS)) {
+//            comActActivityDOS.forEach(comActActivityDO -> {
+//                ComActActivityVO comActActivityVO = new ComActActivityVO();
+//                BeanUtils.copyProperties(comActActivityDO, comActActivityVO);
+//                List<ComActActSignDO> comActActSignDOS = comActActSignDAO.selectList(new QueryWrapper<ComActActSignDO>()
+//                    .lambda().eq(ComActActSignDO::getActivityId, comActActivityDO.getId()));
+//                if (!ObjectUtils.isEmpty(comActActSignDOS)) {
+//                    List<ActivitySignVO> activitySignVOList = new ArrayList<>();
+//                    comActActSignDOS.forEach(comActActSignDO -> {
+//                        ActivitySignVO activitySignVO = new ActivitySignVO();
+//                        BeanUtils.copyProperties(comActActSignDO, activitySignVO);
+//                        activitySignVOList.add(activitySignVO);
+//                        comActActivityVO.setActivitySignVOList(activitySignVOList);
+//                    });
+//                }
+//                comActActivityVOS.add(comActActivityVO);
+//            });
+//            int num = comActActivityDAO.updateIdBatch(longs);
+//            log.info("定时任务--一共取消社区活动数量【{}】", num);
+//        }
+//        return R.ok(comActActivityVOS);
+        return R.ok();
     }
 
     /**
@@ -552,15 +599,15 @@
         int num = comActActivityDAO.updateStatusToNotBegin();
         log.info("定时任务--修改社区活动发布状态活动数量【{}】", num);
         // 修改报名状态 变为报名中
-        int num1 = comActActivityDAO.updateStatusToBeginSign();
-        log.info("定时任务--修改社区活动报名状态活动数量【{}】", num1);
+//        int num1 = comActActivityDAO.updateStatusToBeginSign();
+//        log.info("定时任务--修改社区活动报名状态活动数量【{}】", num1);
+        int num3 = comActActivityDAO.updateStatusToBeginAfterSingEnd();
+        log.info("定时任务--报名结束修改社区活动进行状态活动数量【{}】", num3);
         // 查询已经结束的活动,需要计算积分
         List<Long> activityEndIds = comActActivityDAO.getActivityEndIds();
         // 修改进行状态 变为进行中或者已结束
         int num2 = comActActivityDAO.updateStatusToBeginActiveOrEnd();
         log.info("定时任务--修改社区活动进行状态活动数量【{}】", num2);
-        int num3 = comActActivityDAO.updateStatusToBeginAfterSingEnd();
-        log.info("定时任务--报名结束修改社区活动进行状态活动数量【{}】", num3);
         return R.ok(activityEndIds);
     }
 
@@ -588,11 +635,20 @@
         iPage.getRecords().forEach(vo ->{
             List<ComActActEvaluateDO> comActActEvaluateDOList = comActActEvaluateDAO
                     .selectList(new QueryWrapper<ComActActEvaluateDO>().lambda().eq(ComActActEvaluateDO::getActivityId, vo.getId()));
-            if (comActActEvaluateDOList != null && comActActEvaluateDOList.size() != 0) {
+            if (comActActEvaluateDOList != null && comActActEvaluateDOList.size() > 0) {
+                BigDecimal starNum = BigDecimal.ZERO;
                 //总星级
-                int starNum = comActActEvaluateDOList.stream().mapToInt(ComActActEvaluateDO::getStarLevel).sum();
-                //评分星级=总星级/总评价人数
-                vo.setEvaluateLevel(Double.valueOf(starNum/comActActEvaluateDOList.size()));
+                for (ComActActEvaluateDO evaluateDO:comActActEvaluateDOList) {
+                    starNum = starNum.add(BigDecimal.valueOf(evaluateDO.getStarLevel()==null?0:evaluateDO.getStarLevel()));
+                }
+                //评分星级(如果无评分默认5分)=总星级/总评价人数
+                if(starNum.compareTo(BigDecimal.ZERO) == 0){
+                    vo.setEvaluateLevel(BigDecimal.valueOf(5));
+                }else{
+                    vo.setEvaluateLevel(starNum.divide(BigDecimal.valueOf(comActActEvaluateDOList.size()),2, RoundingMode.HALF_UP));
+                }
+            }else{
+                vo.setEvaluateLevel(BigDecimal.valueOf(5));
             }
         });
         return R.ok(iPage);
@@ -727,21 +783,44 @@
     public R activitySignIn(ComActActRegistVO comActActRegistVO) {
         Long activityId = comActActRegistVO.getActivityId();
         Long userId = comActActRegistVO.getUserId();
-        String activitySignInKey = String.join(DELIMITER, ACTIVITY_SIGN_IN, userId.toString(), activityId.toString());
-        if (stringRedisTemplate.hasKey(activitySignInKey)) {
-            return R.fail("你已签到,如要再次签到请三十分钟后尝试!");
+        if (isNull(activityId)) {
+            return R.fail("签到所属活动id不能为空!");
         }
+        ComActActivityDO comActActivityDO = comActActivityDAO.selectById(activityId);
+        if (isNull(comActActivityDO)) {
+            return R.fail("活动不存在!");
+        }
+
+        Date beginAt = comActActivityDO.getBeginAt();
+        Date endAt = comActActivityDO.getEndAt();
+        Date nowDate = new Date();
+        if (nowDate.before(beginAt) || nowDate.after(endAt)) {
+            return R.fail("不在活动时间范围内");
+        }
+
+        int signCount = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>()
+                .lambda().eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId));
+
+        if (signCount > 0) {
+            return R.fail("请勿重复签到");
+        }
+
+//        String activitySignInKey = String.join(DELIMITER, ACTIVITY_SIGN_IN, userId.toString(), activityId.toString());
+//        if (stringRedisTemplate.hasKey(activitySignInKey)) {
+//            return R.fail("你已签到,如要再次签到请三十分钟后尝试!");
+//        }
         ComActActRegistDO comActActRegistDO = new ComActActRegistDO();
         comActActRegistDO.setActivityId(activityId);
         comActActRegistDO.setUserId(userId);
         comActActRegistDO.setIsVolunteer(comActActRegistVO.getIsVolunteer());
-        comActActRegistDO.setCreateAt(new Date());
+        comActActRegistDO.setCreateAt(nowDate);
         int result = comActActRegistDAO.insert(comActActRegistDO);
         if (result > 0) {
-            ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
-            opsForValue.set(activitySignInKey, "", 1800L, TimeUnit.SECONDS);
+//            ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
+//            opsForValue.set(activitySignInKey, "", 1800L, TimeUnit.SECONDS);
+            return R.ok();
         }
-        return R.ok();
+        return R.fail("网络错误,请重试");
     }
 
     /**
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java
index 8e3689c..8db80c5 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java
@@ -1,44 +1,97 @@
 package com.panzhihua.service_community.service.impl;
 
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+import static org.apache.commons.lang3.StringUtils.isBlank;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 
 import org.springframework.beans.BeanUtils;
+import org.springframework.data.redis.connection.StringRedisConnection;
+import org.springframework.data.redis.core.RedisCallback;
+import org.springframework.data.redis.core.SetOperations;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 import org.springframework.util.StringUtils;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.ComActDiscussCommentDTO;
+import com.panzhihua.common.model.dtos.community.ComActDiscussCommentUserDTO;
+import com.panzhihua.common.model.dtos.community.ComActDiscussDTO;
+import com.panzhihua.common.model.dtos.community.ComActDiscussOptionDTO;
+import com.panzhihua.common.model.dtos.community.ComActDiscussOptionUserDTO;
+import com.panzhihua.common.model.dtos.community.ComActDiscussUserDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDiscussCommentDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDiscussDTO;
 import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenDiscussListDTO;
+import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussDetailDTO;
+import com.panzhihua.common.model.dtos.community.discuss.ComActDiscussPublishResultDTO;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.ComActDiscussCommentVO;
+import com.panzhihua.common.model.vos.community.ComActDiscussOptionUserVO;
 import com.panzhihua.common.model.vos.community.ComActDiscussOptionVO;
 import com.panzhihua.common.model.vos.community.ComActDiscussVO;
 import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.SysConfVO;
 import com.panzhihua.common.model.vos.community.screen.work.DiscussListVO;
-import com.panzhihua.service_community.dao.*;
-import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.service_community.dao.ComActDiscussCommentDAO;
+import com.panzhihua.service_community.dao.ComActDiscussCommentUserDAO;
+import com.panzhihua.service_community.dao.ComActDiscussDAO;
+import com.panzhihua.service_community.dao.ComActDiscussOptionDAO;
+import com.panzhihua.service_community.dao.ComActDiscussOptionUserDAO;
+import com.panzhihua.service_community.dao.ComActDiscussUserDAO;
+import com.panzhihua.service_community.dao.SysConfMapper;
+import com.panzhihua.service_community.model.dos.ComActDiscussCommentDO;
+import com.panzhihua.service_community.model.dos.ComActDiscussCommentUserDO;
+import com.panzhihua.service_community.model.dos.ComActDiscussDO;
+import com.panzhihua.service_community.model.dos.ComActDiscussOptionDO;
+import com.panzhihua.service_community.model.dos.ComActDiscussOptionUserDO;
+import com.panzhihua.service_community.model.dos.ComActDiscussUserDO;
+import com.panzhihua.service_community.model.dos.SysConfDO;
 import com.panzhihua.service_community.service.ComActDiscussOptionService;
 import com.panzhihua.service_community.service.ComActDiscussService;
+import com.panzhihua.service_community.service.SysConfService;
+
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
- * @description: 一起议
+ * @description: 议事投票
  * @author: huang.hongfa weixin hhf9596 qq 959656820
  * @create: 2021-01-22 14:51
  **/
 @Service
+@Slf4j
 public class ComActDiscussServiceImpl implements ComActDiscussService {
+
+    private static final String DISCUSS_VIEW_NUM_PREFIX = "DISCUSS_VIEW_NUM";
+    private static final String INCR_VIEW_DISCUSS_IDS_KEY = "INCR_VIEW_DISCUSS_IDS";
+    private static final long DISCUSS_EXPIRE_TIME = 2678400L;
+
     @Resource
     private ComActDiscussCommentDAO comActDiscussCommentDAO;
     @Resource
@@ -53,33 +106,56 @@
     private ComActDiscussCommentUserDAO comActDiscussCommentUserDAO;
     @Resource
     private ComActDiscussOptionService comActDiscussOptionService;
+    @Resource
+    private SysConfMapper sysConfDao;
+    @Resource
+    private SysConfService sysConfService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
 
     /**
-     * 一起议-新增
+     * 议事投票-新增
      *
-     * @param comActDiscussDTO
-     *            新增参数
+     * @param comActDiscussDTO 新增参数
      * @return 新增结果
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public R addDiscuss(ComActDiscussDTO comActDiscussDTO) {
+        if (!checkCurrentUserDiscussIdentity(comActDiscussDTO)) {
+            return R.fail("权限验证失败,请确认是否有发布权限");
+        }
         ComActDiscussDO comActDiscussDO = new ComActDiscussDO();
         BeanUtils.copyProperties(comActDiscussDTO, comActDiscussDO);
-        ComActVO comActVO = comActDiscussDAO.selectCommunity(comActDiscussDTO.getCommunityId());
+        Integer type = comActDiscussDTO.getType();
+        Date nowDate = new Date();
+        if (type.equals(ComActDiscussDO.type.tp)) {//判断是投票,需要转义时间
+            Date startTime = DateUtils.stringToDate(comActDiscussDTO.getStartTime(), DateUtils.ymdhms_format);
+            Date endTime = DateUtils.stringToDate(comActDiscussDTO.getEndTime(), DateUtils.ymdhms_format);
+            comActDiscussDO.setStartTime(startTime);
+            comActDiscussDO.setEndTime(endTime);
+            comActDiscussDO.setStatus(ComActDiscussDO.status.wks);
+            //根据时间判断状态是否开始
+            if (startTime != null && startTime.getTime() <= nowDate.getTime()) {
+                comActDiscussDO.setStatus(ComActDiscussDO.status.jxz);
+                comActDiscussDO.setReleaseAt(nowDate);
+            }
+        } else {
+            comActDiscussDO.setStatus(ComActDiscussDO.status.yfb);
+        }
         String address = comActDiscussDO.getAddress();
         if (ObjectUtils.isEmpty(address)) {
+            //查询社区地址
+            ComActVO comActVO = comActDiscussDAO.selectCommunity(comActDiscussDTO.getCommunityId());
             comActDiscussDO.setAddress(comActVO.getAddress());
         }
         int insert = comActDiscussDAO.insert(comActDiscussDO);
         if (insert > 0) {
-            ComActDiscussDO comActDiscussDO1 = comActDiscussDAO.selectOne(new QueryWrapper<ComActDiscussDO>().lambda()
-                .eq(ComActDiscussDO::getDiscussSubject, comActDiscussDTO.getDiscussSubject())
-                .eq(ComActDiscussDO::getUserId, comActDiscussDTO.getUserId())
-                .last(" order by create_at desc limit 1 "));
-            Long comActDiscussDO1Id = comActDiscussDO1.getId();
-            Integer type = comActDiscussDTO.getType();
+            //如果是投票,需要把投票的选项存储
             if (type.equals(2)) {
+                Long comActDiscussDO1Id = comActDiscussDO.getId();
                 List<ComActDiscussOptionDTO> discussOptions = comActDiscussDTO.getDiscussOptions();
                 List<ComActDiscussOptionDO> comActDiscussOptionDOS = new ArrayList<>();
                 discussOptions.forEach(s -> {
@@ -97,72 +173,170 @@
     }
 
     /**
-     * 一起议-详情
-     *
-     * @param id
-     *            主键
-     * @return ComActDiscussVO
+     * 小程序用户验证是否拥有发布权限
+     * @param comActDiscussDTO
+     * @return
      */
-    @Override
-    public R detailDiscuss(Long id) {
-        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(id);
-        if (ObjectUtils.isEmpty(comActDiscussDO)) {
-            return R.fail("一起议不存在");
+    private boolean checkCurrentUserDiscussIdentity(ComActDiscussDTO comActDiscussDTO) {
+        //小程序用户验证是否拥有发布权限
+        boolean checkResult = true;
+        Boolean isApplets = comActDiscussDTO.getIsApplets();
+        if (nonNull(isApplets) && isApplets) {
+            String discussIdentityPrefix = "DISCUSS_IDENTITY_";
+            Long communityId = comActDiscussDTO.getCommunityId();
+            R sysConfValue = sysConfService.getSysConfValue(discussIdentityPrefix + communityId, communityId);
+            String discussIdentityConfig = (String) sysConfValue.getData();
+            if (isBlank(discussIdentityConfig)) {
+                checkResult = false;
+            } else {
+                List<String> currentUserRoles = new ArrayList<>();
+                List<String> sysAllowedRoles = Arrays.asList(discussIdentityConfig.split(","));
+                LoginUserInfoVO loginUserInfo = comActDiscussDTO.getLoginUserInfo();
+                if (loginUserInfo.getIsPartymember() == 1) {
+                    currentUserRoles.add("2");
+                }
+                if (loginUserInfo.getIsVolunteer().intValue() == 1) {
+                    currentUserRoles.add("3");
+                }
+                R isTeamResult = userService.checkCurrentUserIsTeam(loginUserInfo.getPhone(), loginUserInfo.getCommunityId());
+                if (R.isOk(isTeamResult) && (Boolean) isTeamResult.getData()) {
+                    currentUserRoles.add("4");
+                }
+                if (currentUserRoles.isEmpty()) {
+                    checkResult = false;
+                }
+                boolean result = sysAllowedRoles.stream().anyMatch(role -> currentUserRoles.contains(role));
+                if (!result) {
+                    checkResult = false;
+                }
+            }
         }
-        ComActDiscussVO comActDiscussVO = new ComActDiscussVO();
-        BeanUtils.copyProperties(comActDiscussDO, comActDiscussVO);
-        Integer integer = comActDiscussCommentDAO.selectCount(
-            new QueryWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, id));
-        comActDiscussVO.setCommentNum(integer);
-        Integer integer1 = comActDiscussUserDAO
-            .selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda().eq(ComActDiscussUserDO::getDiscussId, id));
-        comActDiscussVO.setSignNum(integer1);
-        Integer type = comActDiscussVO.getType();
-        if (type.equals(2)) {
-            List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(
-                new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
-            List<ComActDiscussOptionVO> comActDiscussOptionVOS = new ArrayList<>();
-            comActDiscussOptionDOS.forEach(comActDiscussOptionDO -> {
-                Long discussOptionDOId = comActDiscussOptionDO.getId();
-                Integer selectCount =
-                    comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>().lambda()
-                        .eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
-                ComActDiscussOptionVO comActDiscussOptionVO = new ComActDiscussOptionVO();
-                BeanUtils.copyProperties(comActDiscussOptionDO, comActDiscussOptionVO);
-                comActDiscussOptionVO.setNum(selectCount);
-                comActDiscussOptionVOS.add(comActDiscussOptionVO);
-            });
-            comActDiscussOptionVOS.sort(Comparator.comparing(ComActDiscussOptionVO::getNum).reversed());
-            comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS);
-        }
-        Long userId = comActDiscussDO.getUserId();
-        LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(userId);
-        comActDiscussVO.setUserName(loginUserInfoVO.getName());
-
-        return R.ok(comActDiscussVO);
+        return checkResult;
     }
 
     /**
-     * 一起议-删除
+     * 议事投票-编辑
      *
-     * @param id
-     *            主键
-     * @return 删除结果
+     * @param comActDiscussDTO 请求参数
+     * @return 编辑结果
      */
     @Override
-    public R deleteDiscuss(Long id) {
-        int delete = comActDiscussDAO.deleteById(id);
-        if (delete > 0) {
+    @Transactional(rollbackFor = Exception.class)
+    public R editDiscuss(ComActDiscussDTO comActDiscussDTO) {
+        Long comActDiscussDO1Id = comActDiscussDTO.getId();
+        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(comActDiscussDO1Id);
+        if (ObjectUtils.isEmpty(comActDiscussDO)) {
+            return R.fail("议事投票不存在");
+        }
+        if (!comActDiscussDO.getStatus().equals(ComActDiscussDO.status.wks) && !comActDiscussDO.getStatus().equals(ComActDiscussDO.status.yfb)) {
+            return R.fail("该状态不可修改");
+        }
+        Integer type = comActDiscussDO.getType();
+        Integer isRepeat = comActDiscussDO.getIsRepeat();
+        BeanUtils.copyProperties(comActDiscussDTO, comActDiscussDO);
+        comActDiscussDO.setType(type);
+        comActDiscussDO.setIsRepeat(isRepeat);
+        Date nowDate = new Date();
+        if (type.equals(ComActDiscussDO.type.tp)) {//判断是投票,需要转义时间
+            Date startTime = DateUtils.stringToDate(comActDiscussDTO.getStartTime(), DateUtils.ymdhms_format);
+            Date endTime = DateUtils.stringToDate(comActDiscussDTO.getEndTime(), DateUtils.ymdhms_format);
+            comActDiscussDO.setStartTime(startTime);
+            comActDiscussDO.setEndTime(endTime);
+            comActDiscussDO.setStatus(ComActDiscussDO.status.wks);
+            //根据时间判断状态是否开始
+            if (startTime != null && startTime.getTime() <= nowDate.getTime()) {
+                comActDiscussDO.setStatus(ComActDiscussDO.status.jxz);
+                comActDiscussDO.setReleaseAt(nowDate);
+            }
+        } else {
+            comActDiscussDO.setStatus(ComActDiscussDO.status.yfb);
+        }
+        comActDiscussDO.setUpdateAt(new Date());
+        int insert = comActDiscussDAO.updateById(comActDiscussDO);
+        if (insert > 0) {
+            //如果是投票,需要把投票的选项存储
+            if (type.equals(2)) {
+                comActDiscussOptionService.remove(new QueryWrapper<ComActDiscussOptionDO>().lambda()
+                        .eq(ComActDiscussOptionDO::getDiscussId, comActDiscussDO1Id));
+                List<ComActDiscussOptionDO> comActDiscussOptionDOS = new ArrayList<>();
+                comActDiscussDTO.getDiscussOptions().forEach(s -> {
+                    ComActDiscussOptionDO comActDiscussOptionDO = new ComActDiscussOptionDO();
+                    comActDiscussOptionDO.setDiscussId(comActDiscussDO1Id);
+                    comActDiscussOptionDO.setOptionContent(s.getOptionContent());
+                    comActDiscussOptionDO.setOptionUrl(s.getOptionUrl());
+                    comActDiscussOptionDOS.add(comActDiscussOptionDO);
+                });
+                comActDiscussOptionService.saveBatch(comActDiscussOptionDOS);
+            }
             return R.ok();
         }
         return R.fail();
     }
 
     /**
-     * 一起议-回复
+     * 议事投票-详情
      *
-     * @param comActDiscussCommentDTO
-     *            评论内容
+     * @param discussDetailDTO 请求参数
+     * @return ComActDiscussVO
+     */
+    @Override
+    public R detailDiscuss(ComActDiscussDetailDTO discussDetailDTO) {
+        Long id = discussDetailDTO.getId();
+        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(id);
+        if (ObjectUtils.isEmpty(comActDiscussDO)) {
+            return R.fail("议事投票不存在");
+        }
+        ComActDiscussVO comActDiscussVO = new ComActDiscussVO();
+        BeanUtils.copyProperties(comActDiscussDO, comActDiscussVO);
+        comActDiscussVO.setSignNum(comActDiscussDO.getFabulousNum());
+        Integer type = comActDiscussVO.getType();
+        if (type.equals(ComActDiscussVO.type.tp)) {
+            //查询选项列表
+            List<ComActDiscussOptionVO> comActDiscussOptionList = comActDiscussOptionDAO.getDiscussOptionList(id);
+            comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionList);
+        }
+        Long userId = comActDiscussDO.getUserId();
+        LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(userId);
+        comActDiscussVO.setUserName(loginUserInfoVO.getName());
+        comActDiscussVO.setUserNickName(loginUserInfoVO.getNickName());
+
+        //分页查询评论列表
+        PageComActDiscussCommentDTO pageComActDiscussCommentDTO = new PageComActDiscussCommentDTO();
+        BeanUtils.copyProperties(discussDetailDTO, pageComActDiscussCommentDTO);
+        IPage<ComActDiscussCommentVO> discussComments = comActDiscussDAO.pageDiscussCommentAdmin(new Page<>(pageComActDiscussCommentDTO.getPageNum(), pageComActDiscussCommentDTO.getPageSize()), pageComActDiscussCommentDTO);
+        discussComments.getRecords().forEach(comment -> {
+            if (comment.getReplyNum() > 0) {
+                List<ComActDiscussCommentVO> childList = comActDiscussDAO.getDiscussCommentReplyList(comment.getId());
+                if (!childList.isEmpty()) {
+                    comment.setComActDiscussCommentVOList(childList);
+                }
+            }
+        });
+        comActDiscussVO.setDiscussCommentList(discussComments.getRecords());
+        return R.ok(comActDiscussVO);
+    }
+
+    /**
+     * 议事投票-删除
+     *
+     * @param id 主键
+     * @return 删除结果
+     */
+    @Override
+    public R deleteDiscuss(Long id) {
+        ComActDiscussDO comActDiscussDO = new ComActDiscussDO();
+        comActDiscussDO.setId(id);
+        comActDiscussDO.setIsDel(ComActDiscussDO.isOk.yes);
+        if (comActDiscussDAO.updateById(comActDiscussDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 议事投票-回复
+     *
+     * @param comActDiscussCommentDTO 评论内容
      * @return 回复结果
      */
     @Override
@@ -170,52 +344,62 @@
         Long discussId = comActDiscussCommentDTO.getDiscussId();
         ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(discussId);
         if (ObjectUtils.isEmpty(comActDiscussDO)) {
-            return R.fail("一起议不存在");
+            return R.fail("议事投票不存在");
         }
+        Long currentUser = comActDiscussCommentDTO.getUserId();
+        //判断当前用户是否参与过评论
+        int currentUserCommentCount = comActDiscussCommentDAO.selectCount(new QueryWrapper<ComActDiscussCommentDO>()
+                .lambda().eq(ComActDiscussCommentDO::getDiscussId, discussId).eq(ComActDiscussCommentDO::getUserId, currentUser));
+
         ComActDiscussCommentDO comActDiscussCommentDO = new ComActDiscussCommentDO();
         BeanUtils.copyProperties(comActDiscussCommentDTO, comActDiscussCommentDO);
-        Long userId = comActDiscussCommentDTO.getUserId();
-        Long userId1 = comActDiscussDO.getUserId();
-        if (userId.equals(userId1)) {
+        Long discussUser = comActDiscussDO.getUserId();
+        if (currentUser.equals(discussUser)) {
             comActDiscussCommentDO.setIsAuthor(1);
         }
         int insert = comActDiscussCommentDAO.insert(comActDiscussCommentDO);
         if (insert > 0) {
+//            comActDiscussDAO.addCommentCount(discussId, 1);
+            //评论成功,评论总数+1
+            //若首次参与评论,参与讨论人数+1
+            if (currentUserCommentCount > 0) {
+                comActDiscussDAO.incrCommentAndJoinNumById(discussId, false);
+            } else {
+                comActDiscussDAO.incrCommentAndJoinNumById(discussId, true);
+            }
             return R.ok();
         }
         return R.fail();
     }
 
     /**
-     * 一起议-分页查询
+     * 议事投票-分页查询
      *
-     * @param pageComActDiscussDTO
-     *            查询参数
+     * @param pageComActDiscussDTO 查询参数
      * @return ComActDiscussVO
      */
     @Override
     public R pageDiscuss(PageComActDiscussDTO pageComActDiscussDTO) {
-        Page page = new Page<>();
-        Long pageNum = pageComActDiscussDTO.getPageNum();
-        Long pageSize = pageComActDiscussDTO.getPageSize();
-        if (null == pageNum || 0 == pageNum) {
-            pageNum = 1l;
-        }
-        if (null == pageSize || 0 == pageSize) {
-            pageSize = 10l;
-        }
-        page.setSize(pageSize);
-        page.setCurrent(pageNum);
-        IPage<ComActDiscussVO> iPage = comActDiscussDAO.pageDiscuss(page, pageComActDiscussDTO);
+        IPage<ComActDiscussVO> iPage = comActDiscussDAO.pageDiscuss(new Page<>(pageComActDiscussDTO.getPageNum(), pageComActDiscussDTO.getPageSize()), pageComActDiscussDTO);
         return R.ok(iPage);
 
     }
 
     /**
-     * 一起议-评论-查看
+     * 议事投票-后台分页查询
      *
-     * @param id
-     *            主键
+     * @param pageComActDiscussDTO 请求参数
+     * @return 议事投票列表
+     */
+    @Override
+    public R pageDiscussAdmin(PageComActDiscussDTO pageComActDiscussDTO) {
+        return R.ok(comActDiscussDAO.pageDiscussAdmin(new Page<>(pageComActDiscussDTO.getPageNum(), pageComActDiscussDTO.getPageSize()), pageComActDiscussDTO));
+    }
+
+    /**
+     * 议事投票-评论-查看
+     *
+     * @param id 主键
      * @return 详情 ComActDiscussCommentVO
      */
     @Override
@@ -237,7 +421,7 @@
             comActDiscussCommentVO.setParentId(parentId);
         }
         Integer count = comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
-            .eq(ComActDiscussCommentUserDO::getDisscussCommentId, id));
+                .eq(ComActDiscussCommentUserDO::getDisscussCommentId, id));
         comActDiscussCommentVO.setNum(count);
         LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(comActDiscussCommentDO.getUserId());
         comActDiscussCommentVO.setUserName(loginUserInfoVO.getName());
@@ -246,10 +430,50 @@
     }
 
     /**
-     * 一起议-评论-置顶
+     * 议事投票评论详情
      *
-     * @param id
-     *            主键
+     * @param pageComActDiscussCommentDTO 请求参数
+     * @return 议事投票详情
+     */
+    @Override
+    public R detailDiscussCommentAdmin(PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
+        Long id = pageComActDiscussCommentDTO.getId();
+        ComActDiscussCommentDO comActDiscussCommentDO = comActDiscussCommentDAO.selectById(id);
+        if (ObjectUtils.isEmpty(comActDiscussCommentDO)) {
+            return R.fail("评论不存在");
+        }
+        ComActDiscussCommentVO comActDiscussCommentVO = new ComActDiscussCommentVO();
+        Long parentId = comActDiscussCommentDO.getParentId();
+        if (parentId.intValue() == 0) {
+            // 一级评论
+            BeanUtils.copyProperties(comActDiscussCommentDO, comActDiscussCommentVO);
+        } else {
+            ComActDiscussCommentDO comActDiscussCommentDO1 = comActDiscussCommentDAO.selectById(parentId);
+            BeanUtils.copyProperties(comActDiscussCommentDO1, comActDiscussCommentVO);
+            comActDiscussCommentVO.setCommentBack(comActDiscussCommentDO.getComment());
+            comActDiscussCommentVO.setTimeBack(comActDiscussCommentDO.getCreateAt());
+            comActDiscussCommentVO.setParentId(parentId);
+        }
+        Integer count = comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
+                .eq(ComActDiscussCommentUserDO::getDisscussCommentId, id));
+        comActDiscussCommentVO.setNum(count);
+        LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(comActDiscussCommentDO.getUserId());
+        comActDiscussCommentVO.setUserName(loginUserInfoVO.getName());
+        comActDiscussCommentVO.setPhone(loginUserInfoVO.getPhone());
+        comActDiscussCommentVO.setImageUrl(loginUserInfoVO.getImageUrl());
+
+        //查询该评论下所有回复内容
+        IPage<ComActDiscussCommentVO> discussCommentList = comActDiscussCommentDAO.getDiscussCommentList(new Page(pageComActDiscussCommentDTO.getPageNum(), pageComActDiscussCommentDTO.getPageSize()), pageComActDiscussCommentDTO.getId());
+        if (!discussCommentList.getRecords().isEmpty()) {
+            comActDiscussCommentVO.setComActDiscussCommentVOList(discussCommentList.getRecords());
+        }
+        return R.ok(comActDiscussCommentVO);
+    }
+
+    /**
+     * 议事投票-评论-置顶
+     *
+     * @param id 主键
      * @return 置顶结果
      */
     @Override
@@ -266,7 +490,7 @@
         ComActDiscussCommentDO comActDiscussCommentDO1 = new ComActDiscussCommentDO();
         comActDiscussCommentDO1.setIsTopping(0);
         comActDiscussCommentDAO.update(comActDiscussCommentDO1,
-            new UpdateWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, discussId));
+                new UpdateWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, discussId));
         comActDiscussCommentDO1.setIsTopping(1);
         comActDiscussCommentDO1.setId(id);
         int update = comActDiscussCommentDAO.updateById(comActDiscussCommentDO1);
@@ -277,10 +501,9 @@
     }
 
     /**
-     * 一起议-评论-回复
+     * 议事投票-评论-回复
      *
-     * @param comActDiscussCommentDTO
-     *            回复内容
+     * @param comActDiscussCommentDTO 回复内容
      * @return 回复结果
      */
     @Override
@@ -293,54 +516,68 @@
         Long discussId = comActDiscussCommentDO.getDiscussId();
         ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(discussId);
         if (ObjectUtils.isEmpty(comActDiscussDO)) {
-            return R.fail("一起议不存在");
+            return R.fail("议事投票不存在");
         }
-        Long userId = comActDiscussDO.getUserId();
-        Long userId1 = comActDiscussCommentDTO.getUserId();
+        Long parentId = comActDiscussCommentDO.getParentId();
+        if (parentId.intValue() != 0) {
+            return R.fail("二级评论不能回复");
+        }
+        Long currentUser = comActDiscussCommentDTO.getUserId();
+        //判断当前用户是否参与过评论/回复
+        int currentUserCommentCount = comActDiscussCommentDAO.selectCount(new QueryWrapper<ComActDiscussCommentDO>()
+                .lambda().eq(ComActDiscussCommentDO::getDiscussId, discussId).eq(ComActDiscussCommentDO::getUserId, currentUser));
+        Long discussUser = comActDiscussDO.getUserId();
         ComActDiscussCommentDO comActDiscussCommentDO1 = new ComActDiscussCommentDO();
         comActDiscussCommentDO1.setDiscussId(discussId);
         comActDiscussCommentDO1.setComment(comActDiscussCommentDTO.getComment());
         comActDiscussCommentDO1.setUserId(comActDiscussCommentDTO.getUserId());
         comActDiscussCommentDO1.setParentId(id);
-        if (userId.equals(userId1)) {
+        if (discussUser.equals(currentUser)) {
             comActDiscussCommentDO1.setIsAuthor(1);
         }
         int insert = comActDiscussCommentDAO.insert(comActDiscussCommentDO1);
         if (insert > 0) {
+//            comActDiscussDAO.addCommentCount(discussId, 1);
+            //回复成功,评论总数+1
+            //若首次参与评论,参与讨论人数+1
+            if (currentUserCommentCount > 0) {
+                comActDiscussDAO.incrCommentAndJoinNumById(discussId, false);
+            } else {
+                comActDiscussDAO.incrCommentAndJoinNumById(discussId, true);
+            }
             return R.ok();
         }
         return R.fail();
     }
 
     /**
-     * 一起议-评论-分页查询
+     * 议事投票-评论-分页查询
      *
-     * @param pageComActDiscussCommentDTO
-     *            分页查询参数
+     * @param pageComActDiscussCommentDTO 分页查询参数
      * @return ComActDiscussCommentVO
      */
     @Override
     public R pageDiscussComment(PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
-        Page page = new Page<>();
-        Long pageNum = pageComActDiscussCommentDTO.getPageNum();
-        Long pageSize = pageComActDiscussCommentDTO.getPageSize();
-        if (null == pageNum || 0 == pageNum) {
-            pageNum = 1l;
-        }
-        if (null == pageSize || 0 == pageSize) {
-            pageSize = 10l;
-        }
-        page.setSize(pageSize);
-        page.setCurrent(pageNum);
-        IPage<ComActDiscussCommentVO> iPage = comActDiscussDAO.pageDiscussComment(page, pageComActDiscussCommentDTO);
+        IPage<ComActDiscussCommentVO> iPage = comActDiscussDAO.pageDiscussComment(new Page<>(pageComActDiscussCommentDTO.getPageNum(), pageComActDiscussCommentDTO.getPageSize()), pageComActDiscussCommentDTO);
         return R.ok(iPage);
     }
 
     /**
-     * 一起议-分页查询 小程序
+     * 议事投票-评论-后台分页查询
      *
-     * @param pageComActDiscussDTO
-     *            查询参数
+     * @param pageComActDiscussCommentDTO 分页查询参数
+     * @return ComActDiscussCommentVO
+     */
+    @Override
+    public R pageDiscussCommentAdmin(PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
+        IPage<ComActDiscussCommentVO> iPage = comActDiscussDAO.pageDiscussCommentAdmin(new Page<>(pageComActDiscussCommentDTO.getPageNum(), pageComActDiscussCommentDTO.getPageSize()), pageComActDiscussCommentDTO);
+        return R.ok(iPage);
+    }
+
+    /**
+     * 议事投票-分页查询 小程序
+     *
+     * @param pageComActDiscussDTO 查询参数
      * @return ComActDiscussVO 分页
      */
     @Override
@@ -363,15 +600,21 @@
             records.forEach(comActDiscussVO -> {
                 Integer type = comActDiscussVO.getType();
                 Long id = comActDiscussVO.getId();
+                String viewNumKey = String.join("_", DISCUSS_VIEW_NUM_PREFIX, id.toString());
+                if (stringRedisTemplate.hasKey(viewNumKey)) {
+                    ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
+                    comActDiscussVO.setViewsNum(Integer.parseInt(opsForValue.get(viewNumKey)));
+                }
                 if (type.equals(2)) {
                     List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(
-                        new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
+                            new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
                     List<ComActDiscussOptionVO> comActDiscussOptionVOS = new ArrayList<>();
+                    List<Integer> votes = new ArrayList<>();
                     comActDiscussOptionDOS.forEach(comActDiscussOptionDO -> {
                         Long discussOptionDOId = comActDiscussOptionDO.getId();
                         Integer selectCount =
-                            comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>()
-                                .lambda().eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
+                                comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>()
+                                        .lambda().eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
                         ComActDiscussOptionVO comActDiscussOptionVO = new ComActDiscussOptionVO();
                         BeanUtils.copyProperties(comActDiscussOptionDO, comActDiscussOptionVO);
                         comActDiscussOptionVO.setNum(selectCount);
@@ -379,19 +622,42 @@
                         if (loginUserId != null) {
                             // 判断选项是否已投票
                             int haveVote =
-                                comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId);
+                                    comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId);
+                            votes.add(haveVote);
                             comActDiscussOptionVO.setHaveVote(haveVote > 0 ? 1 : 0);
                         }
                         comActDiscussOptionVOS.add(comActDiscussOptionVO);
                     });
-                    comActDiscussOptionVOS.sort(Comparator.comparing(ComActDiscussOptionVO::getNum).reversed());
+                    fillThePercentAndSort(comActDiscussOptionVOS);
+                    checkDiscussStatusIsCorrect(comActDiscussVO);
                     comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS);
+                    //填充剩余可投票数
+                    if (loginUserId != null && !loginUserId.equals(0L)) {
+                        if (comActDiscussVO.getIsRepeat().intValue() == 1) {
+                            //可重复投票
+                            int votedVotesInToday = comActDiscussOptionUserDAO.selectVotedVotesInToday(id, loginUserId);
+                            int remainingVotes = comActDiscussVO.getCount().intValue() - votedVotesInToday;
+                            comActDiscussVO.setRemainingVotes(remainingVotes >= 0 ? remainingVotes : 0);
+                        } else {
+                            //不可重复投票
+                            int alreadyVotedVotes = votes.stream().mapToInt(Integer::intValue).sum();
+                            int remainingVotes = comActDiscussVO.getCount().intValue() - alreadyVotedVotes;
+                            comActDiscussVO.setRemainingVotes(remainingVotes >= 0 ? remainingVotes : 0);
+                        }
+                    }
+                    //填充投票记录列表
+                    List<ComActDiscussOptionUserVO> comActDiscussOptionUserVOList = comActDiscussOptionUserDAO
+                            .selectVotedRecords(comActDiscussVO.getId());
+                    comActDiscussVO.setComActDiscussOptionUserVOList(comActDiscussOptionUserVOList);
+                    //填充已参与投票人数
+                    int votedPersonNum = comActDiscussOptionUserDAO.selectVotedPersonNum(comActDiscussVO.getId());
+                    comActDiscussVO.setVotedPersonNum(votedPersonNum);
                 }
 
                 if (loginUserId != null) {
                     Integer integer = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda()
-                        .eq(ComActDiscussUserDO::getDiscussId, comActDiscussVO.getId())
-                        .eq(ComActDiscussUserDO::getUserId, loginUserId));
+                            .eq(ComActDiscussUserDO::getDiscussId, comActDiscussVO.getId())
+                            .eq(ComActDiscussUserDO::getUserId, loginUserId));
                     if (integer > 0) {
                         comActDiscussVO.setHaveSign(1);
                     } else {
@@ -407,10 +673,23 @@
     }
 
     /**
-     * 一起议-点赞、取消点赞
+     * 判断discuss状态是否正确
+     * @param comActDiscussVO
+     */
+    private void checkDiscussStatusIsCorrect(ComActDiscussVO comActDiscussVO) {
+        //判断discuss状态是否正确
+        boolean isIncorrectStatus = comActDiscussVO.getEndTime().before(new Date()) &&
+                (comActDiscussVO.getStatus().intValue() == 1 || comActDiscussVO.getStatus().intValue() == 2);
+        if (isIncorrectStatus) {
+            comActDiscussVO.setStatus(3);
+            comActDiscussDAO.updateStatusById(comActDiscussVO.getId(), 3);
+        }
+    }
+
+    /**
+     * 议事投票-点赞、取消点赞
      *
-     * @param comActDiscussUserDTO
-     *            操作类型
+     * @param comActDiscussUserDTO 操作类型
      * @return 操作结果
      */
     @Override
@@ -419,24 +698,26 @@
         int num = 0;
         ComActDiscussUserDO comActDiscussUserDO = new ComActDiscussUserDO();
         BeanUtils.copyProperties(comActDiscussUserDTO, comActDiscussUserDO);
-        if (type.intValue() == 1) {
+        boolean isIncr = type.intValue() == 1;
+        if (isIncr) {
             num = comActDiscussUserDAO.insert(comActDiscussUserDO);
         } else {
             num = comActDiscussUserDAO.delete(new QueryWrapper<ComActDiscussUserDO>().lambda()
-                .eq(ComActDiscussUserDO::getUserId, comActDiscussUserDTO.getUserId())
-                .eq(ComActDiscussUserDO::getDiscussId, comActDiscussUserDTO.getDiscussId()));
+                    .eq(ComActDiscussUserDO::getUserId, comActDiscussUserDTO.getUserId())
+                    .eq(ComActDiscussUserDO::getDiscussId, comActDiscussUserDTO.getDiscussId()));
         }
         if (num > 0) {
+            //点赞成功 总数+1 || 取消点赞成功 总数-1
+            comActDiscussDAO.incrOrDecrFabulousNumByType(comActDiscussUserDTO.getDiscussId(), isIncr);
             return R.ok();
         }
         return R.fail();
     }
 
     /**
-     * 一起议-评论-分页查询 小程序
+     * 议事投票-评论-分页查询 小程序
      *
-     * @param pageComActDiscussCommentDTO
-     *            分页参数
+     * @param pageComActDiscussCommentDTO 分页参数
      * @return ComActDiscussCommentVO
      */
     @Override
@@ -453,7 +734,7 @@
         page.setSize(pageSize);
         page.setCurrent(pageNum);
         IPage<ComActDiscussCommentVO> iPage =
-            comActDiscussDAO.pageDiscussCommentApplets(page, pageComActDiscussCommentDTO);
+                comActDiscussDAO.pageDiscussCommentApplets(page, pageComActDiscussCommentDTO);
         List<ComActDiscussCommentVO> records = iPage.getRecords();
         if (!ObjectUtils.isEmpty(records)) {
             records.forEach(comActDiscussCommentVO -> {
@@ -465,8 +746,8 @@
                     comActDiscussCommentVOList.forEach(comActDiscussCommentVO1 -> {
                         Long parentId = comActDiscussCommentVO1.getParentId();
                         List<ComActDiscussCommentVO> collect = comActDiscussCommentVOS.stream()
-                            .filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId))
-                            .collect(Collectors.toList());
+                                .filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId))
+                                .collect(Collectors.toList());
                         if (!ObjectUtils.isEmpty(collect)) {
                             String userName = collect.get(0).getUserName();
                             String userNickName = collect.get(0).getUserNickName();
@@ -474,8 +755,8 @@
                             comActDiscussCommentVO1.setUserNickNameBack(userNickName);
                         }
                         List<ComActDiscussCommentVO> collect1 = records.stream()
-                            .filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId))
-                            .collect(Collectors.toList());
+                                .filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId))
+                                .collect(Collectors.toList());
                         if (!ObjectUtils.isEmpty(collect1)) {
                             ComActDiscussCommentVO comActDiscussCommentVOFirst = collect1.get(0);
                             String userName = comActDiscussCommentVOFirst.getUserName();
@@ -484,13 +765,13 @@
                             comActDiscussCommentVO1.setUserNickNameBack(userNickName);
                         }
                         if (pageComActDiscussCommentDTO.getLoginUserId() != null
-                            && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) {
+                                && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) {
                             Integer integer = comActDiscussCommentUserDAO
-                                .selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
-                                    .eq(ComActDiscussCommentUserDO::getDisscussCommentId,
-                                        comActDiscussCommentVO1.getId())
-                                    .eq(ComActDiscussCommentUserDO::getUserId,
-                                        pageComActDiscussCommentDTO.getLoginUserId()));
+                                    .selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
+                                            .eq(ComActDiscussCommentUserDO::getDisscussCommentId,
+                                                    comActDiscussCommentVO1.getId())
+                                            .eq(ComActDiscussCommentUserDO::getUserId,
+                                                    pageComActDiscussCommentDTO.getLoginUserId()));
                             if (integer > 0) {
                                 comActDiscussCommentVO1.setHaveSign(1);
                             } else {
@@ -504,11 +785,11 @@
                     comActDiscussCommentVO.setComActDiscussCommentVOList(comActDiscussCommentVOList);
                 }
                 if (pageComActDiscussCommentDTO.getLoginUserId() != null
-                    && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) {
+                        && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) {
                     Integer integer =
-                        comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
-                            .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentVO.getId())
-                            .eq(ComActDiscussCommentUserDO::getUserId, pageComActDiscussCommentDTO.getLoginUserId()));
+                            comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
+                                    .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentVO.getId())
+                                    .eq(ComActDiscussCommentUserDO::getUserId, pageComActDiscussCommentDTO.getLoginUserId()));
                     if (integer > 0) {
                         comActDiscussCommentVO.setHaveSign(1);
                     } else {
@@ -526,51 +807,68 @@
     }
 
     /**
-     * 一起议-详情 小程序
+     * 议事投票-详情 小程序
      *
-     * @param id
-     *            主键
-     * @param loginUserId
-     *            登录用户主键
+     * @param id          主键
+     * @param loginUserId 登录用户主键
      * @return ComActDiscussVO
      */
     @Override
     public R detailDiscussApplets(Long id, Long loginUserId) {
         ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(id);
         if (ObjectUtils.isEmpty(comActDiscussDO)) {
-            return R.fail("一起议不存在");
+            return R.fail("议事投票不存在");
         }
         ComActDiscussVO comActDiscussVO = new ComActDiscussVO();
         BeanUtils.copyProperties(comActDiscussDO, comActDiscussVO);
-        Integer integer = comActDiscussCommentDAO.selectCount(
-            new QueryWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, id));
-        comActDiscussVO.setCommentNum(integer);
-        Integer integer1 = comActDiscussUserDAO
-            .selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda().eq(ComActDiscussUserDO::getDiscussId, id));
-        comActDiscussVO.setSignNum(integer1);
+        comActDiscussVO.setSignNum(comActDiscussDO.getFabulousNum());
         Integer type = comActDiscussVO.getType();
         if (type.equals(2)) {
             List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(
-                new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
+                    new QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, id));
             List<ComActDiscussOptionVO> comActDiscussOptionVOS = new ArrayList<>();
+            ArrayList<Integer> votes = new ArrayList<>();
             comActDiscussOptionDOS.forEach(comActDiscussOptionDO -> {
                 Long discussOptionDOId = comActDiscussOptionDO.getId();
                 Integer selectCount =
-                    comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>().lambda()
-                        .eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
+                        comActDiscussOptionUserDAO.selectCount(new QueryWrapper<ComActDiscussOptionUserDO>().lambda()
+                                .eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionDOId));
                 ComActDiscussOptionVO comActDiscussOptionVO = new ComActDiscussOptionVO();
                 BeanUtils.copyProperties(comActDiscussOptionDO, comActDiscussOptionVO);
                 comActDiscussOptionVO.setNum(selectCount);
                 if (loginUserId != null && !loginUserId.equals(0L)) {
                     // 判断选项是否已投票
                     int haveVote =
-                        comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId);
+                            comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId);
+                    votes.add(haveVote);
                     comActDiscussOptionVO.setHaveVote(haveVote > 0 ? 1 : 0);
                 }
                 comActDiscussOptionVOS.add(comActDiscussOptionVO);
             });
-            comActDiscussOptionVOS.sort(Comparator.comparing(ComActDiscussOptionVO::getNum).reversed());
+            fillThePercentAndSort(comActDiscussOptionVOS);
             comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionVOS);
+            //填充剩余可投票数
+            if (loginUserId != null && !loginUserId.equals(0L)) {
+                if (comActDiscussVO.getIsRepeat().intValue() == 1) {
+                    //可重复投票
+                    int votedVotesInToday = comActDiscussOptionUserDAO.selectVotedVotesInToday(id, loginUserId);
+                    int remainingVotes = comActDiscussVO.getCount().intValue() - votedVotesInToday;
+                    comActDiscussVO.setRemainingVotes(remainingVotes >= 0 ? remainingVotes : 0);
+                } else {
+                    //不可重复投票
+                    int alreadyVotedVotes = votes.stream().mapToInt(Integer::intValue).sum();
+                    int remainingVotes = comActDiscussVO.getCount().intValue() - alreadyVotedVotes;
+                    comActDiscussVO.setRemainingVotes(remainingVotes >= 0 ? remainingVotes : 0);
+                }
+            }
+            checkDiscussStatusIsCorrect(comActDiscussVO);
+            //填充投票记录列表
+            List<ComActDiscussOptionUserVO> comActDiscussOptionUserVOList = comActDiscussOptionUserDAO
+                    .selectVotedRecords(comActDiscussVO.getId());
+            comActDiscussVO.setComActDiscussOptionUserVOList(comActDiscussOptionUserVOList);
+            //填充已参与投票人数
+            int votedPersonNum = comActDiscussOptionUserDAO.selectVotedPersonNum(comActDiscussVO.getId());
+            comActDiscussVO.setVotedPersonNum(votedPersonNum);
         }
         Long userId = comActDiscussDO.getUserId();
         LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(userId);
@@ -596,20 +894,45 @@
             comActDiscussVO.setHaveSign(comActDiscussVO1.getHaveSign());
             comActDiscussVO.setHaveVote(comActDiscussVO1.getHaveVote());
         }
-
+        String viewNumKey = String.join("_", DISCUSS_VIEW_NUM_PREFIX, id.toString());
+        if (stringRedisTemplate.hasKey(viewNumKey)) {
+            ValueOperations opsForValue = stringRedisTemplate.opsForValue();
+            int viewNum = Integer.parseInt((String) opsForValue.get(viewNumKey));
+            comActDiscussVO.setViewsNum(viewNum);
+        }
         return R.ok(comActDiscussVO);
     }
 
     /**
-     * 一起议-投票
+     * 计算投票占比以及排序
+     * @param comActDiscussOptionVOS
+     */
+    private void fillThePercentAndSort(List<ComActDiscussOptionVO> comActDiscussOptionVOS) {
+        //填充总票数
+        int allSum = comActDiscussOptionVOS.stream().mapToInt(ComActDiscussOptionVO::getNum).sum();
+        comActDiscussOptionVOS.forEach(option -> {
+            if (allSum == 0) {
+                option.setPercent(new BigDecimal(0));
+            } else {
+                //占比
+                BigDecimal percent = BigDecimal.valueOf(option.getNum()).divide(BigDecimal.valueOf(allSum), 2, RoundingMode.HALF_UP)
+                        .multiply(BigDecimal.valueOf(100)).setScale(0);
+                option.setPercent(percent);
+            }
+        });
+        comActDiscussOptionVOS.sort(Comparator.comparing(ComActDiscussOptionVO::getNum).reversed());
+    }
+
+    /**
+     * 议事投票-投票
      *
-     * @param comActDiscussOptionUserDTO
-     *            投票信息
+     * @param comActDiscussOptionUserDTO 投票信息
      * @return 投票结果
      */
     @Override
     public R addDiscussOptionUser(ComActDiscussOptionUserDTO comActDiscussOptionUserDTO) {
-        Long discussOptionId = comActDiscussOptionUserDTO.getDiscussOptionId();
+        List<Long> discussOptionIds = comActDiscussOptionUserDTO.getDiscussOptionIds();
+        Long discussOptionId = discussOptionIds.get(0);
         Long userId = comActDiscussOptionUserDTO.getUserId();
         ComActDiscussOptionDO comActDiscussOptionDO = comActDiscussOptionDAO.selectById(discussOptionId);
         if (ObjectUtils.isEmpty(comActDiscussOptionDO)) {
@@ -620,33 +943,54 @@
         // QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, discussId));
         // List<Long> longList=comActDiscussOptionDOS.stream().map(comActDiscussOptionDO1 ->
         // comActDiscussOptionDO1.getId()).collect(Collectors.toList());
-        Integer integer = comActDiscussOptionUserDAO.selectCount(
-            new QueryWrapper<ComActDiscussOptionUserDO>().lambda().eq(ComActDiscussOptionUserDO::getUserId, userId)
-                .eq(ComActDiscussOptionUserDO::getDiscussOptionId, discussOptionId));
-        if (integer > 0) {
-            return R.fail("不要重复投票");
+        Long discussId = comActDiscussOptionDO.getDiscussId();
+        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(comActDiscussOptionDO.getDiscussId());
+        if (isNull(comActDiscussOptionDO)) {
+            return R.fail("投票主题不存在");
         }
-        ComActDiscussOptionUserDO comActDiscussOptionUserDO = new ComActDiscussOptionUserDO();
-        comActDiscussOptionUserDO.setUserId(userId);
-        comActDiscussOptionUserDO.setDiscussOptionId(discussOptionId);
-        int insert = comActDiscussOptionUserDAO.insert(comActDiscussOptionUserDO);
-        if (insert > 0) {
+        boolean isRepeat = comActDiscussDO.getIsRepeat().intValue() == 1;
+        int usableVoteVotes = comActDiscussDO.getCount().intValue();
+        int currentVoteNum = discussOptionIds.size();
+        if (isRepeat) {
+            //可重复投票
+            int votedVotesInToday = comActDiscussOptionUserDAO.selectVotedVotesInToday(discussId, userId);
+            if (usableVoteVotes <= votedVotesInToday || currentVoteNum > usableVoteVotes - votedVotesInToday) {
+                return R.fail("票数不足");
+            }
+        } else {
+            //不可重复投票
+            int alreadyVotedVotes = comActDiscussOptionUserDAO.selectCount(
+                new QueryWrapper<ComActDiscussOptionUserDO>().lambda().eq(ComActDiscussOptionUserDO::getUserId, userId)
+                    .eq(ComActDiscussOptionUserDO::getDiscussId, discussId));
+            if (usableVoteVotes <= alreadyVotedVotes || currentVoteNum > usableVoteVotes - alreadyVotedVotes) {
+                return R.fail("票数不足");
+            }
+        }
+        List<ComActDiscussOptionUserDO> comActDiscussOptionUserDOList = new ArrayList<>();
+        discussOptionIds.forEach(optionId -> {
+            ComActDiscussOptionUserDO comActDiscussOptionUserDO = new ComActDiscussOptionUserDO();
+            comActDiscussOptionUserDO.setUserId(userId);
+            comActDiscussOptionUserDO.setDiscussOptionId(optionId);
+            comActDiscussOptionUserDO.setDiscussId(discussId);
+            comActDiscussOptionUserDOList.add(comActDiscussOptionUserDO);
+        });
+        int result = comActDiscussOptionUserDAO.batchInsert(comActDiscussOptionUserDOList);
+        if (result > 0) {
             return R.ok();
         }
         return R.fail();
     }
 
     /**
-     * 一起议-评论-点赞、取消点赞
+     * 议事投票-评论-点赞、取消点赞
      *
-     * @param comActDiscussCommentUserDTO
-     *            评论点赞
+     * @param comActDiscussCommentUserDTO 评论点赞
      * @return 点赞结果
      */
     @Override
     public R putDiscussCommentUser(ComActDiscussCommentUserDTO comActDiscussCommentUserDTO) {
         ComActDiscussCommentDO comActDiscussCommentDO =
-            comActDiscussCommentDAO.selectById(comActDiscussCommentUserDTO.getId());
+                comActDiscussCommentDAO.selectById(comActDiscussCommentUserDTO.getId());
         if (ObjectUtils.isEmpty(comActDiscussCommentDO)) {
             return R.fail("评论不存在");
         }
@@ -659,8 +1003,8 @@
             num = comActDiscussCommentUserDAO.insert(comActDiscussCommentUserDO);
         } else {
             num = comActDiscussCommentUserDAO.delete(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
-                .eq(ComActDiscussCommentUserDO::getUserId, comActDiscussCommentUserDTO.getUserId())
-                .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentUserDTO.getId()));
+                    .eq(ComActDiscussCommentUserDO::getUserId, comActDiscussCommentUserDTO.getUserId())
+                    .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentUserDTO.getId()));
         }
         if (num > 0) {
             return R.ok();
@@ -669,29 +1013,28 @@
     }
 
     /**
-     * 工作大屏-一起议列表
+     * 工作大屏-议事投票列表
      *
-     * @param discussListDTO
-     *            请求参数
-     * @return 一起议列表
+     * @param discussListDTO 请求参数
+     * @return 议事投票列表
      */
     @Override
     public R getScreenDiscussList(ScreenDiscussListDTO discussListDTO) {
         IPage<DiscussListVO> discussListVOIPage = comActDiscussDAO
-            .getScreenDiscussList(new Page(discussListDTO.getPageNum(), discussListDTO.getPageSize()), discussListDTO);
+                .getScreenDiscussList(new Page(discussListDTO.getPageNum(), discussListDTO.getPageSize()), discussListDTO);
         if (!discussListVOIPage.getRecords().isEmpty()) {
             discussListVOIPage.getRecords().forEach(discussListVO -> {
                 // 查询评论数量和点赞数量
                 Integer integer = comActDiscussCommentDAO.selectCount(new QueryWrapper<ComActDiscussCommentDO>()
-                    .lambda().eq(ComActDiscussCommentDO::getDiscussId, discussListVO.getId()));
+                        .lambda().eq(ComActDiscussCommentDO::getDiscussId, discussListVO.getId()));
                 discussListVO.setCommentCount(integer);
                 Integer integer1 = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda()
-                    .eq(ComActDiscussUserDO::getDiscussId, discussListVO.getId()));
+                        .eq(ComActDiscussUserDO::getDiscussId, discussListVO.getId()));
                 discussListVO.setFabulousCount(integer1);
 
                 if (discussListVO.getType().equals(ScreenDiscussListDTO.type.tp)) {// 投票
                     List<ComActDiscussOptionVO> discussOptionList =
-                        comActDiscussDAO.getScreenDiscussOptionList(discussListVO.getId());
+                            comActDiscussDAO.getScreenDiscussOptionList(discussListVO.getId());
                     if (!discussOptionList.isEmpty()) {
                         discussListVO.setDiscussOptionList(discussOptionList);
                     }
@@ -700,4 +1043,281 @@
         }
         return R.ok(discussListVOIPage);
     }
+
+    /**
+     * 议事投票后台公布结果
+     *
+     * @param publishResultDTO 请求参数
+     * @return 公布结果
+     */
+    @Override
+    public R publishResultAdmin(ComActDiscussPublishResultDTO publishResultDTO) {
+        ComActDiscussDO discussDO = comActDiscussDAO.selectById(publishResultDTO.getId());
+        if (discussDO == null) {
+            return R.fail("议事投票记录不存在");
+        }
+        Date nowDate = new Date();
+        if (publishResultDTO.getType().equals(ComActDiscussPublishResultDTO.type.add)) {
+            if (!discussDO.getStatus().equals(ComActDiscussDO.status.dgb)) {
+                return R.fail("该议事投票不是待公布状态,不可公布结果操作");
+            }
+            discussDO.setStatus(ComActDiscussDO.status.ygb);
+        }
+        discussDO.setPublishAt(nowDate);
+        discussDO.setPublishResult(publishResultDTO.getResult());
+        discussDO.setUpdateAt(nowDate);
+        discussDO.setPublishBy(publishResultDTO.getUserId());
+        if (comActDiscussDAO.updateById(discussDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 议事投票-评论/回复删除
+     *
+     * @param id 评论/回复id
+     * @return 删除结果
+     */
+    @Override
+    public R deleteDiscussCommentAdmin(Long id) {
+        ComActDiscussCommentDO discussCommentDO = comActDiscussCommentDAO.selectById(id);
+        if (discussCommentDO == null) {
+            return R.fail("未查询到该记录");
+        }
+        if (discussCommentDO.getIsDel().equals(ComActDiscussCommentDO.isDelete.yes)) {
+            return R.fail("该记录已被删除");
+        }
+        discussCommentDO.setIsDel(ComActDiscussCommentDO.isDelete.yes);
+        if (comActDiscussCommentDAO.updateById(discussCommentDO) > 0) {
+            ComActDiscussDO discussDO = comActDiscussDAO.selectById(discussCommentDO.getDiscussId());
+            if (discussDO != null) {
+                if (discussDO.getCommentNum() > 0) {
+                    if (discussCommentDO.getParentId().equals(0L)) {
+                        Integer count = comActDiscussCommentDAO.selectCount(new QueryWrapper<ComActDiscussCommentDO>().lambda()
+                                .eq(ComActDiscussCommentDO::getParentId, id).eq(ComActDiscussCommentDO::getIsDel, ComActDiscussCommentDO.isDelete.no));
+                        if (count != null && count > 0 && discussDO.getCommentNum() > count) {
+                            discussDO.setCommentNum(discussDO.getCommentNum() - count);
+                        } else {
+                            discussDO.setCommentNum(discussDO.getCommentNum() - 1);
+                        }
+                        comActDiscussDAO.updateById(discussDO);
+                    } else {
+                        discussDO.setCommentNum(discussDO.getCommentNum() - 1);
+                        comActDiscussDAO.updateById(discussDO);
+                    }
+                }
+            }
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查询评论下回复列表
+     *
+     * @param discussDetailDTO 请求参数
+     * @return 回复列表
+     */
+    @Override
+    public R discussCommentReplyAdmin(ComActDiscussDetailDTO discussDetailDTO) {
+        return R.ok(comActDiscussCommentDAO.getDiscussCommentList(new Page(discussDetailDTO.getPageNum(), discussDetailDTO.getPageSize()), discussDetailDTO.getId()));
+    }
+
+    /**
+     * 查询社区可发布议事投票权限配置
+     *
+     * @param communityId 社区id
+     * @return 社区可发布议事投票权限配置
+     */
+    @Override
+    public R discussJurisdictionGet(Long communityId, Long userId) {
+        List<SysConfDO> confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
+                .eq(SysConfDO::getCommunityId, communityId)
+                .eq(SysConfDO::getCode,Constants.DISCUSS_IDENTITY_KEY + communityId)
+                .orderByDesc(SysConfDO::getCreateAt));
+        if (confDOList == null || confDOList.size() == 0) {
+            SysConfDO sysConfDO = new SysConfDO();
+            sysConfDO.setCode(Constants.DISCUSS_IDENTITY_KEY + communityId);
+            sysConfDO.setName("社区议事投票小程序身份验证参数");
+            sysConfDO.setValue("");// 社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员)
+            sysConfDO.setDescription("社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员)");
+            sysConfDO.setCommunityId(communityId);
+            sysConfDO.setCreateBy(userId);
+            int inserted = sysConfDao.insert(sysConfDO);
+            if (inserted != 1) {
+                throw new ServiceException("添加社区议事投票小程序身份验证参数失败");
+            }
+            confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
+                    .eq(SysConfDO::getCommunityId, communityId)
+                    .orderByDesc(SysConfDO::getCreateAt));
+        }
+        if (confDOList != null && confDOList.size() > 0) {
+            SysConfDO latest = confDOList.get(0);
+            SysConfVO sysConfVO = new SysConfVO();
+            BeanUtils.copyProperties(latest, sysConfVO);
+            return R.ok(sysConfVO.getValue());
+        }
+        return R.ok();
+    }
+
+    /**
+     * 设置当前社区议事投票小程序身份验证参数(1.全部 2.党员 3.志愿者 4.社区工作人员)
+     *
+     * @param communityId 社区id
+     * @param value       需要设置的参数值
+     * @return 设置结果
+     */
+    @Override
+    public R discussJurisdictionSet(Long communityId, String value) {
+        List<SysConfDO> authConf =
+                sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCommunityId, communityId)
+                        .eq(SysConfDO::getCode, Constants.DISCUSS_IDENTITY_KEY + communityId).orderByDesc(SysConfDO::getCreateAt));
+        if (authConf != null && authConf.size() > 0) {
+            SysConfDO first = authConf.get(0);
+            first.setValue(value);
+            int updated = sysConfDao.updateById(first);
+            if (updated == 1) {
+                return R.ok();
+            }
+        }
+        return R.fail();
+    }
+
+    /**
+     * 议事投票检测状态定时任务
+     * @return  执行结果
+     */
+    @Override
+    public R timedTaskDiscussInspectStatus() {
+        Date nowDate = new Date();
+        //查询已过开始时间未开始投票列表
+        List<ComActDiscussDO> wksDiscussList = comActDiscussDAO.selectList(new QueryWrapper<ComActDiscussDO>().lambda()
+                .eq(ComActDiscussDO::getType, ComActDiscussDO.type.tp).eq(ComActDiscussDO::getIsDel, ComActDiscussDO.isOk.no)
+                .eq(ComActDiscussDO::getStatus,ComActDiscussDO.status.wks).le(ComActDiscussDO::getStartTime, nowDate));
+        wksDiscussList.forEach(wksDiscuss -> {
+            wksDiscuss.setStatus(ComActDiscussDO.status.jxz);
+            wksDiscuss.setUpdateAt(nowDate);
+            wksDiscuss.setReleaseAt(nowDate);
+            comActDiscussDAO.updateById(wksDiscuss);
+        });
+
+        //查询已过结束时间未结束的投票列表
+        List<ComActDiscussDO> jxzDiscussList = comActDiscussDAO.selectList(new QueryWrapper<ComActDiscussDO>().lambda()
+                .eq(ComActDiscussDO::getType, ComActDiscussDO.type.tp).eq(ComActDiscussDO::getIsDel, ComActDiscussDO.isOk.no)
+                .eq(ComActDiscussDO::getStatus,ComActDiscussDO.status.jxz).le(ComActDiscussDO::getEndTime, nowDate));
+        jxzDiscussList.forEach(jxzDiscuss -> {
+            jxzDiscuss.setStatus(ComActDiscussDO.status.dgb);
+            jxzDiscuss.setUpdateAt(nowDate);
+            comActDiscussDAO.updateById(jxzDiscuss);
+        });
+        return R.ok();
+    }
+
+    /**
+     * 一起议增加浏览量
+     * @param discussId 一起议主键id
+     */
+    @Override
+    public void increaseViewNum(Long discussId) {
+        String incrKey = String.join("_", DISCUSS_VIEW_NUM_PREFIX, discussId.toString());
+        Boolean isExist = stringRedisTemplate.hasKey(incrKey);
+        ValueOperations opsForValue = stringRedisTemplate.opsForValue();
+        if (isExist) {
+            opsForValue.increment(incrKey);
+        } else {
+            ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(discussId);
+            if (nonNull(comActDiscussDO)) {
+                stringRedisTemplate.executePipelined((RedisCallback<Object>) redisConnection -> {
+                    StringRedisConnection stringRedisConnection = (StringRedisConnection) redisConnection;
+                    Integer nowViewNum = Math.addExact(comActDiscussDO.getViewsNum().intValue(), 1);
+                    stringRedisConnection.set(incrKey, nowViewNum.toString());
+                    stringRedisConnection.expire(incrKey, DISCUSS_EXPIRE_TIME);
+                    stringRedisConnection.sAdd(INCR_VIEW_DISCUSS_IDS_KEY, discussId.toString());
+                    stringRedisConnection.expire(INCR_VIEW_DISCUSS_IDS_KEY, DISCUSS_EXPIRE_TIME);
+                    return null;
+                });
+            }
+        }
+    }
+
+    /**
+     * 公布/编辑一起议投票结果
+     * @param comActDiscussDTO
+     * @return 请求结果
+     */
+    @Override
+    public R editDiscussResult(ComActDiscussDTO comActDiscussDTO) {
+        if (isNull(comActDiscussDTO.getId()) || isNull(comActDiscussDTO.getPublishResult())) {
+            return R.fail("缺少参数!");
+        }
+        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(comActDiscussDTO.getId());
+        if (isNull(comActDiscussDO)) {
+            return R.fail("当前一起议主题不存在!");
+        }
+        if (!comActDiscussDTO.getUserId().equals(comActDiscussDO.getUserId())) {
+            return R.fail("只能公布或编辑自己发布的主题!");
+        }
+        comActDiscussDO.setPublishResult(comActDiscussDTO.getPublishResult());
+        comActDiscussDO.setStatus(4);
+        int result = comActDiscussDAO.updateById(comActDiscussDO);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("网络错误,请重试!");
+    }
+
+    /**
+     * 一起议获取是否有发布权
+     * @param comActDiscussDTO
+     * @return
+     */
+    @Override
+    public R getDiscussPermissions(ComActDiscussDTO comActDiscussDTO) {
+        return R.ok(checkCurrentUserDiscussIdentity(comActDiscussDTO));
+    }
+
+    /**
+     * 将redis中浏览量写入表中
+     * @return 执行结果
+     */
+    @Override
+    public R writeDiscussViewNumToTable() {
+        try {
+            if (stringRedisTemplate.hasKey(INCR_VIEW_DISCUSS_IDS_KEY)) {
+                SetOperations opsForSet = stringRedisTemplate.opsForSet();
+                Set<String> needWriteDiscussIdSet = opsForSet.members(INCR_VIEW_DISCUSS_IDS_KEY);
+
+                //组装viewNum key
+                List<String> viewNumKeys = new ArrayList<>();
+                Iterator<String> iterator = needWriteDiscussIdSet.iterator();
+                while (iterator.hasNext()) {
+                    viewNumKeys.add(String.join("_", DISCUSS_VIEW_NUM_PREFIX, iterator.next()));
+                }
+
+                ValueOperations opsForValue = stringRedisTemplate.opsForValue();
+                List<String> viewNumList = opsForValue.multiGet(viewNumKeys);
+
+                //待处理集合,以key-value/discussId-viewNum 存放
+                HashMap<Long, Integer> needDealMap = new HashMap<>();
+                for (String discussId : needWriteDiscussIdSet) {
+                    try {
+                        needDealMap.put(Long.parseLong(discussId), Integer.parseInt(viewNumList.get(0)));
+                        viewNumList.remove(0);
+                    } catch (IndexOutOfBoundsException e) {
+                        //数据存在异常了,跳过,继续执行正确的
+                        continue;
+                    }
+                }
+                int result = comActDiscussDAO.batchUpdateViewNum(needDealMap);
+                if (result <= 0) {
+                    return R.fail("处理失败");
+                }
+            }
+        } catch (Exception e) {
+            log.error("写入浏览量失败【{}】", e.getMessage());
+            return R.fail("处理失败");
+        }
+        return R.ok();
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoServiceImpl.java
index ad42d5b..0dfad0a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoServiceImpl.java
@@ -288,6 +288,7 @@
                     cmActEasyPhotoDO.setIsReportUrban(ComActEasyPhotoVO.isReportUrban.yes);
                     cmActEasyPhotoDO.setTransferReason(comActEasyPhotoVO.getTransferReason());
                     cmActEasyPhotoDO.setTransferTime(nowDate);
+
                 } else {
                     cmActEasyPhotoDO.setIsReportUrban(ComActEasyPhotoVO.isReportUrban.no);
                 }
@@ -697,6 +698,64 @@
     }
 
     /**
+     * 获取首页弹窗接口
+     *
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 首页弹窗接口
+     */
+    @Override
+    public R getUserRewards(Long userId, Long communityId) {
+        // 结果返回参数
+        ComActEasyPhotoRewardVO easyPhotoRewardVO = new ComActEasyPhotoRewardVO();
+        // 查询随手拍活动
+        ComActEasyPhotoActivityVO photoActivityVO = new ComActEasyPhotoActivityVO();
+        Date nowDate = DateUtils.getCurrentDate(DateUtils.ymdhms_format);
+        List<ComActEasyPhotoActivityDO> photoActivityDOS =
+                comActEasyPhotoActivityMapper.selectList(new QueryWrapper<ComActEasyPhotoActivityDO>().lambda()
+                        .eq(ComActEasyPhotoActivityDO::getCommunityId, communityId)
+                        .eq(ComActEasyPhotoActivityDO::getStatus, ComActEasyPhotoActivityDO.status.jxz)
+                        .le(ComActEasyPhotoActivityDO::getActivityStartAt, nowDate)
+                        .ge(ComActEasyPhotoActivityDO::getActivityEndAt, nowDate));
+        if (!photoActivityDOS.isEmpty()) {
+            ComActEasyPhotoActivityDO photoActivityDO = photoActivityDOS.get(0);
+            BeanUtils.copyProperties(photoActivityDO, photoActivityVO);
+            easyPhotoRewardVO.setEasyPhotoActivityVO(photoActivityVO);
+        }
+        if (userId != null && userId != 0L) {
+            // 查询用户未读奖励金额
+            BigDecimal amount = comActEasyPhotoRewardMapper.getUserReward(userId, communityId);
+            if (amount != null) {
+                easyPhotoRewardVO.setAmount(amount);
+            }
+        }
+        // 查询当前社区正在进行中的弹窗调查问卷
+        ComActQuestnaireDO popupQuestnaireDO = comActQuestnaireDAO.selectOne(new QueryWrapper<ComActQuestnaireDO>()
+                .lambda().le(ComActQuestnaireDO::getStartTime, nowDate).ge(ComActQuestnaireDO::getEndTime, nowDate)
+                .eq(ComActQuestnaireDO::getCommunityId, communityId).eq(ComActQuestnaireDO::getState, 2)
+                .eq(ComActQuestnaireDO::getAdverPositionPopup, ComActQuestnaireDO.isOk.yes));
+        if (popupQuestnaireDO != null) {
+            ComActQuestnaireAppVO popupQuestnaireVO = new ComActQuestnaireAppVO();
+            BeanUtils.copyProperties(popupQuestnaireDO, popupQuestnaireVO);
+            if (userId != null) {
+                if (popupQuestnaireDO.getIsForce().equals(ComActQuestnaireDO.isOk.no)) {
+                    // 查询用户是否已点击不再提醒
+                    Integer count = comActQuestnaireDAO.getNoRemindCount(userId, popupQuestnaireVO.getId());
+                    if (count <= 0) {
+                        popupQuestnaireVO.setIsDisplay(ComActQuestnaireDO.isOk.yes);
+                    }
+                } else {
+                    popupQuestnaireVO.setIsDisplay(ComActQuestnaireDO.isOk.yes);
+                }
+            }
+            easyPhotoRewardVO.setPopupQuestnaireVO(popupQuestnaireVO);
+        }
+        return R.ok(easyPhotoRewardVO);
+    }
+
+    /**
      * 读取用户随手拍奖励
      * 
      * @param userId
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishOperationRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishOperationRecordServiceImpl.java
new file mode 100644
index 0000000..601b48e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishOperationRecordServiceImpl.java
@@ -0,0 +1,53 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.model.dos.ComActMicroWishOperationRecordDO;
+import com.panzhihua.service_community.dao.ComActMicroWishOperationRecordMapper;
+import com.panzhihua.service_community.service.ComActMicroWishOperationRecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * @auther lyq
+ * @create 2021-08-27 10:28:04
+ * @describe 服务实现类
+ */
+@Slf4j
+@Service
+public class ComActMicroWishOperationRecordServiceImpl extends ServiceImpl<ComActMicroWishOperationRecordMapper, ComActMicroWishOperationRecordDO> implements ComActMicroWishOperationRecordService {
+    @Resource
+    private ComActMicroWishOperationRecordMapper comActMicroWishOperationRecordMapper;
+    @Override
+    public R getByWishId(Long id) {
+        return R.ok(comActMicroWishOperationRecordMapper.getByWishId(id));
+    }
+
+    /**
+     * 微心愿添加操作记录
+     * @param content   操作内容
+     * @param userId    操作用户id
+     * @param wishId    微心愿id
+     * @param type      操作类型
+     * @param remark    操作备注
+     * @param imgUrl    反馈图片
+     */
+    @Override
+    public void addOperationRecord(String content,Long userId,Long wishId,Integer type,String remark,String imgUrl){
+        ComActMicroWishOperationRecordDO wishOperationRecordDO = new ComActMicroWishOperationRecordDO();
+        wishOperationRecordDO.setWishId(wishId);
+        wishOperationRecordDO.setUserId(userId);
+        wishOperationRecordDO.setType(type);
+        wishOperationRecordDO.setRemark(remark);
+        wishOperationRecordDO.setContent(content);
+        wishOperationRecordDO.setCreateTime(new Date());
+        if(StringUtils.isNotEmpty(imgUrl)){
+            wishOperationRecordDO.setImgUrl(imgUrl);
+        }
+        this.baseMapper.insert(wishOperationRecordDO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java
index 5d7a6aa..04c1763 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java
@@ -1,13 +1,6 @@
 package com.panzhihua.service_community.service.impl;
 
-import java.util.Date;
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Service;
-import org.springframework.util.ObjectUtils;
-
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -15,17 +8,31 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenMicroListDTO;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActMicroWishFeedbackVO;
+import com.panzhihua.common.model.vos.community.ComActMicroWishOperationRecordVO;
 import com.panzhihua.common.model.vos.community.ComActMicroWishVO;
 import com.panzhihua.common.model.vos.community.TodoEventsVO;
 import com.panzhihua.common.model.vos.community.screen.work.MicroListVO;
 import com.panzhihua.common.utlis.SensitiveUtil;
 import com.panzhihua.service_community.dao.ComActMicroWishDAO;
+import com.panzhihua.service_community.dao.ComActMicroWishFeedbackMapper;
+import com.panzhihua.service_community.dao.ComActMicroWishOperationRecordMapper;
 import com.panzhihua.service_community.dao.ComActMicroWishUserDAO;
 import com.panzhihua.service_community.model.dos.ComActMicroWishDO;
+import com.panzhihua.service_community.model.dos.ComActMicroWishFeedbackDO;
+import com.panzhihua.service_community.model.dos.ComActMicroWishOperationRecordDO;
 import com.panzhihua.service_community.model.dos.ComActMicroWishUserDO;
+import com.panzhihua.service_community.service.ComActMicroWishOperationRecordService;
 import com.panzhihua.service_community.service.ComActMicroWishService;
-
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 /**
  * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -35,18 +42,21 @@
  **/
 @Service
 @Slf4j
-public class ComActMicroWishServiceImpl extends ServiceImpl<ComActMicroWishDAO, ComActMicroWishDO>
-    implements ComActMicroWishService {
+public class ComActMicroWishServiceImpl extends ServiceImpl<ComActMicroWishDAO, ComActMicroWishDO> implements ComActMicroWishService {
     @Resource
     private ComActMicroWishDAO comActMicroWishDAO;
     @Resource
     private ComActMicroWishUserDAO comActMicroWishUserDAO;
-
+    @Resource
+    private ComActMicroWishFeedbackMapper comActMicroWishFeedbackMapper;
+    @Resource
+    private ComActMicroWishOperationRecordMapper comActMicroWishOperationRecordMapper;
+    @Resource
+    private ComActMicroWishOperationRecordService wishOperationRecordService;
     /**
      * 分页查询微心愿
      *
-     * @param comActMicroWishVO
-     *            查询参数
+     * @param comActMicroWishVO 查询参数
      * @return 心愿列表
      */
     @Override
@@ -55,10 +65,10 @@
         Page page = new Page<>();
         Long pageNum = comActMicroWishVO.getPageNum();
         Long pageSize = comActMicroWishVO.getPageSize();
-        if (null == pageNum || 0 == pageNum) {
+        if (null==pageNum || 0 == pageNum) {
             pageNum = 1l;
         }
-        if (null == pageSize || 0 == pageSize) {
+        if (null==pageSize || 0 == pageSize) {
             pageSize = 10l;
         }
         page.setSize(pageSize);
@@ -68,10 +78,9 @@
         List<ComActMicroWishVO> records = iPage.getRecords();
         if (!ObjectUtils.isEmpty(records)) {
             records.forEach(comActMicroWishVO1 -> {
-                if (userId != null) {
+                if(userId != null){
                     Long id = comActMicroWishVO1.getId();
-                    ComActMicroWishUserDO comActMicroWishUserDO = comActMicroWishUserDAO.selectOne(
-                        new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getMicroWishId, id)
+                    ComActMicroWishUserDO comActMicroWishUserDO = comActMicroWishUserDAO.selectOne(new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getMicroWishId, id)
                             .eq(ComActMicroWishUserDO::getUserId, userId));
                     if (ObjectUtils.isEmpty(comActMicroWishUserDO)) {
                         comActMicroWishVO1.setHaveGiveThumbsUp(0);
@@ -79,8 +88,32 @@
                         comActMicroWishVO1.setHaveGiveThumbsUp(1);
                     }
                 }
-                comActMicroWishVO1
-                    .setSponsorPhone(SensitiveUtil.desensitizedPhoneNumber(comActMicroWishVO1.getSponsorPhone()));
+                comActMicroWishVO1.setSponsorPhone(SensitiveUtil.desensitizedPhoneNumber(comActMicroWishVO1.getSponsorPhone()));
+            });
+            iPage.setRecords(records);
+        }
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R pageMicroWishApplets(ComActMicroWishVO comActMicroWishVO) {
+        Long userId = comActMicroWishVO.getResponsibleId();
+        IPage<ComActMicroWishVO> iPage = comActMicroWishDAO.pageMicroWishApplets(new Page(comActMicroWishVO.getPageNum()
+                ,comActMicroWishVO.getPageSize()), comActMicroWishVO);
+        List<ComActMicroWishVO> records = iPage.getRecords();
+        if (!ObjectUtils.isEmpty(records)) {
+            records.forEach(comActMicroWishVO1 -> {
+                if(userId != null){
+                    Long id = comActMicroWishVO1.getId();
+                    ComActMicroWishUserDO comActMicroWishUserDO = comActMicroWishUserDAO.selectOne(new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getMicroWishId, id)
+                            .eq(ComActMicroWishUserDO::getUserId, userId));
+                    if (ObjectUtils.isEmpty(comActMicroWishUserDO)) {
+                        comActMicroWishVO1.setHaveGiveThumbsUp(0);
+                    } else {
+                        comActMicroWishVO1.setHaveGiveThumbsUp(1);
+                    }
+                }
+                comActMicroWishVO1.setSponsorPhone(SensitiveUtil.desensitizedPhoneNumber(comActMicroWishVO1.getSponsorPhone()));
             });
             iPage.setRecords(records);
         }
@@ -90,10 +123,8 @@
     /**
      * 心愿详情
      *
-     * @param id
-     *            查询主键
-     * @param userId
-     *            登录用户id
+     * @param id 查询主键
+     * @param userId 登录用户id
      * @return 心愿内容
      */
     @Override
@@ -103,34 +134,47 @@
             return R.fail("微心愿不存在");
         }
         Integer starNum = comActMicroWishVO.getStarNum();
-        if (null == starNum) {
+        if (null==starNum) {
             comActMicroWishVO.setStarNum(0);
         }
         if (ObjectUtils.isEmpty(comActMicroWishVO)) {
             return R.fail("心愿不存在");
         }
-        if (userId != null) {
-            ComActMicroWishUserDO comActMicroWishUserDO =
-                comActMicroWishUserDAO.selectOne(new QueryWrapper<ComActMicroWishUserDO>().lambda()
-                    .eq(ComActMicroWishUserDO::getUserId, userId).eq(ComActMicroWishUserDO::getMicroWishId, id));
+        if(userId != null){
+            ComActMicroWishUserDO comActMicroWishUserDO = comActMicroWishUserDAO.selectOne(new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getUserId, userId).eq(ComActMicroWishUserDO::getMicroWishId, id));
             if (ObjectUtils.isEmpty(comActMicroWishUserDO)) {
                 comActMicroWishVO.setHaveGiveThumbsUp(0);
-            } else {
+            }else {
                 comActMicroWishVO.setHaveGiveThumbsUp(1);
             }
         }
+        //查询反馈列表
+        List<ComActMicroWishFeedbackVO> feedList=comActMicroWishFeedbackMapper.selectByWishId(id);
+        if(!feedList.isEmpty()){
+            comActMicroWishVO.setFeedbackVOList(feedList);
+        }
+        //查询操作记录
+        List<ComActMicroWishOperationRecordVO> operationList=comActMicroWishOperationRecordMapper.getByWishId(id);
+        if(!operationList.isEmpty()){
+            comActMicroWishVO.setOperationRecordVOList(operationList);
+        }
         comActMicroWishVO.setSponsorPhone(SensitiveUtil.desensitizedPhoneNumber(comActMicroWishVO.getSponsorPhone()));
+        //查询同类型id数组
+        List<Long> idList=comActMicroWishOperationRecordMapper.selectId(comActMicroWishVO);
+        if(!idList.isEmpty()){
+            comActMicroWishVO.setIdList(idList);
+        }
         return R.ok(comActMicroWishVO);
     }
 
     /**
      * 审核、分配、反馈心愿
      *
-     * @param comActMicroWishVO
-     *            具体操作
+     * @param comActMicroWishVO 具体操作
      * @return 操作结果
      */
     @Override
+    @Transactional
     public R putlMicroWish(ComActMicroWishVO comActMicroWishVO) {
         Long id = comActMicroWishVO.getId();
         int type = comActMicroWishVO.getType().intValue();
@@ -138,49 +182,117 @@
         Long responsibleId = comActMicroWishVO.getResponsibleId();
         String feedback = comActMicroWishVO.getFeedback();
         String feedbackPhotoPathList = comActMicroWishVO.getFeedbackPhotoPathList();
-        ComActMicroWishDO comActMicroWishDO = new ComActMicroWishDO();
+        ComActMicroWishDO comActMicroWishDO=new ComActMicroWishDO();
         comActMicroWishDO.setId(id);
+        Boolean isUpdate = false;
         Date date = new Date();
-        // 1 审核通过 2驳回 3分配人员 4发起活动 5反馈
-        switch (type) {
+        ComActMicroWishOperationRecordDO comActMicroWishOperationRecordDO=new ComActMicroWishOperationRecordDO();
+        comActMicroWishOperationRecordDO.setCreateTime(date);
+        comActMicroWishOperationRecordDO.setUserId(comActMicroWishVO.getUserId());
+        comActMicroWishOperationRecordDO.setWishId(comActMicroWishVO.getId());
+        ComActMicroWishDO microWishDO = this.baseMapper.selectById(id);
+        if(microWishDO == null){
+            return R.fail("未查询到该微心愿记录");
+        }
+//        1 审核通过 2驳回 3分配人员 4发起活动 5反馈
+        switch (type){
             case 1:
+                isUpdate = true;
+                if(!microWishDO.getStatus().equals(ComActMicroWishDO.status.dsh)){
+                    return R.fail("该微心愿已审核,不可重复审核");
+                }
                 comActMicroWishDO.setExamineAt(date);
-                comActMicroWishDO.setStatus(2);// 待分配
+                comActMicroWishDO.setAimNum(comActMicroWishVO.getAimNum());
+                comActMicroWishDO.setStatus(7);//集心中
+                comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.sh);
+                comActMicroWishOperationRecordDO.setContent("审核通过");
+                comActMicroWishOperationRecordDO.setRemark("微心愿审核通过");
+                comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO);
                 break;
             case 2:
+                isUpdate = true;
+                if(!microWishDO.getStatus().equals(ComActMicroWishDO.status.dsh)){
+                    return R.fail("该微心愿已审核,不可重复审核");
+                }
                 comActMicroWishDO.setExamineAt(date);
                 comActMicroWishDO.setRejectReason(rejectReason);
-                comActMicroWishDO.setStatus(4);// 驳回
+                comActMicroWishDO.setStatus(4);//驳回
+                comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.bh);
+                comActMicroWishOperationRecordDO.setContent(rejectReason);
+                comActMicroWishOperationRecordDO.setRemark("微心愿审核未通过");
+                comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO);
                 break;
             case 3:
+                isUpdate = true;
                 comActMicroWishDO.setDistributionAt(date);
                 comActMicroWishDO.setResponsibleId(responsibleId);
-                comActMicroWishDO.setStatus(3);// 进行中
+                comActMicroWishDO.setStatus(3);//进行中
                 comActMicroWishDO.setForm(1);
+                //添加操作记录
+                comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.fp);
+                comActMicroWishOperationRecordDO.setContent("分配心愿");
+                comActMicroWishOperationRecordDO.setRemark("分配心愿");
+                comActMicroWishOperationRecordDO.setUserId(responsibleId);
+                comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO);
                 break;
             case 4:
+                isUpdate = true;
                 comActMicroWishDO.setDistributionAt(date);
                 comActMicroWishDO.setResponsibleId(responsibleId);
-                comActMicroWishDO.setStatus(3);// 待确认
+                comActMicroWishDO.setStatus(3);//待确认
                 comActMicroWishDO.setForm(2);
+                //添加操作记录
+                comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.fp);
+                comActMicroWishOperationRecordDO.setContent("分配心愿");
+                comActMicroWishOperationRecordDO.setRemark("分配心愿");
+                comActMicroWishOperationRecordDO.setUserId(responsibleId);
+                comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO);
                 break;
             case 5:
-                if (comActMicroWishVO.getFeedback().length() > 200) {
+                if(comActMicroWishVO.getFeedback().length() > 200){
                     return R.fail("反馈字数不得超过200字");
                 }
-                comActMicroWishDO.setFeedbackAt(date);
-                comActMicroWishDO.setStatus(5);// 待确认
-                comActMicroWishDO.setFeedback(feedback);
-                comActMicroWishDO.setFinish(feedback);
-                comActMicroWishDO.setFinishPhotoPathList(feedbackPhotoPathList);
-                comActMicroWishDO.setFinishAt(date);
-                comActMicroWishDO.setFeedbackPhotoPathList(feedbackPhotoPathList);
-                break;
+                //新增反馈记录
+                ComActMicroWishFeedbackDO comActMicroWishFeedbackDO=new ComActMicroWishFeedbackDO();
+                comActMicroWishFeedbackDO.setCreateTime(date);
+                comActMicroWishFeedbackDO.setContent(feedback);
+                comActMicroWishFeedbackDO.setImgUrl(feedbackPhotoPathList);
+                comActMicroWishFeedbackDO.setMicroId(comActMicroWishVO.getId());
+                comActMicroWishFeedbackDO.setUserId(comActMicroWishVO.getUserId());
+                if(comActMicroWishVO.getStatus() != null && comActMicroWishVO.getStatus().equals(ComActMicroWishDO.status.dqr)){
+                    isUpdate = true;
+                    comActMicroWishDO.setStatus(ComActMicroWishDO.status.dqr);
+                    comActMicroWishDO.setFinishAt(date);
+                    comActMicroWishDO.setFinish(feedback);
+                    comActMicroWishDO.setFinishPhotoPathList(feedbackPhotoPathList);
+
+                    //添加操作记录
+                    comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.fk);
+                    comActMicroWishOperationRecordDO.setContent(feedback);
+                    comActMicroWishOperationRecordDO.setRemark("心愿已完成");
+                    comActMicroWishOperationRecordDO.setImgUrl(feedbackPhotoPathList);
+                    comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO);
+                }else{
+                    //添加操作记录
+                    comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.fk);
+                    comActMicroWishOperationRecordDO.setContent(feedback);
+                    comActMicroWishOperationRecordDO.setRemark("社区反馈");
+                    comActMicroWishOperationRecordDO.setImgUrl(feedbackPhotoPathList);
+                    comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO);
+                }
+//                else {
+//                    comActMicroWishDO.setStatus(3);
+//                }
+                comActMicroWishFeedbackMapper.insert(comActMicroWishFeedbackDO);
             default:
                 break;
         }
-        int update = comActMicroWishDAO.updateById(comActMicroWishDO);
-        if (update > 0) {
+        if(isUpdate){
+            int update = comActMicroWishDAO.updateById(comActMicroWishDO);
+            if (update>0) {
+                return R.ok();
+            }
+        }else{
             return R.ok();
         }
         return R.fail();
@@ -189,47 +301,51 @@
     /**
      * 点赞/取消点赞微心愿
      *
-     * @param comActMicroWishVO
-     *            操作参数
+     * @param comActMicroWishVO 操作参数
      * @return 操作结果
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public R comActMicroWishVO(ComActMicroWishVO comActMicroWishVO) {
-        Integer haveGiveThumbsUp = comActMicroWishVO.getHaveGiveThumbsUp();
         Long userId = comActMicroWishVO.getSponsorId();
         Long microWishId = comActMicroWishVO.getId();
-        ComActMicroWishUserDO comActMicroWishUserDO =
-            comActMicroWishUserDAO.selectOne(new QueryWrapper<ComActMicroWishUserDO>().lambda()
-                .eq(ComActMicroWishUserDO::getMicroWishId, microWishId).eq(ComActMicroWishUserDO::getUserId, userId));
-        boolean empty = ObjectUtils.isEmpty(comActMicroWishUserDO);
-        int num = 0;
-        if (haveGiveThumbsUp.intValue() == 1) {
-            if (empty) {
-                ComActMicroWishUserDO comActMicroWishUserDO1 = new ComActMicroWishUserDO();
-                comActMicroWishUserDO1.setMicroWishId(microWishId);
-                comActMicroWishUserDO1.setUserId(userId);
-                num = comActMicroWishUserDAO.insert(comActMicroWishUserDO1);
-            } else {
-                return R.ok();
-            }
-        } else {
-            if (empty) {
-                return R.ok();
-            } else {
-                num = comActMicroWishUserDAO.deleteById(comActMicroWishUserDO.getId());
+        //查询微心愿集心数并判断修改微心愿状态
+        ComActMicroWishDO comActMicroWishDO=comActMicroWishDAO.selectById(microWishId);
+        Integer count=comActMicroWishUserDAO.selectCount(new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getMicroWishId, microWishId));
+        if(comActMicroWishDO!=null&&comActMicroWishDO.getAimNum()!=null&&count<comActMicroWishDO.getAimNum()){
+            if(comActMicroWishDO.getStatus()==ComActMicroWishDO.status.jx){
+                ComActMicroWishUserDO comActMicroWishUserDO = comActMicroWishUserDAO.selectOne(new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getMicroWishId, microWishId).eq(ComActMicroWishUserDO::getUserId, userId));
+                boolean empty = ObjectUtils.isEmpty(comActMicroWishUserDO);
+                int num=0;
+                if (empty) {
+                    ComActMicroWishUserDO comActMicroWishUserDO1=new ComActMicroWishUserDO();
+                    comActMicroWishUserDO1.setMicroWishId(microWishId);
+                    comActMicroWishUserDO1.setUserId(userId);
+                    num=comActMicroWishUserDAO.insert(comActMicroWishUserDO1);
+                }else{
+                    return R.fail("无法重新点心");
+                }
+                if (num>0) {
+                    if(count>=comActMicroWishDO.getAimNum()-1){
+                        comActMicroWishDO.setStatus(ComActMicroWishDO.status.dfp);
+                        comActMicroWishDO.setFeedbackAt(DateUtil.date());
+                        comActMicroWishDAO.updateById(comActMicroWishDO);
+
+                        //完成集心添加操作记录
+                        wishOperationRecordService.addOperationRecord("完成集心",comActMicroWishDO.getSponsorId()
+                                ,comActMicroWishDO.getId(),ComActMicroWishOperationRecordDO.type.jx,"用户完成集心",null);
+                    }
+                    return R.ok();
+                }
             }
         }
-        if (num > 0) {
-            return R.ok();
-        }
-        return R.fail();
+        return R.fail("该微心愿不可点心");
     }
 
     /**
      * 用户确认心愿
      *
-     * @param comActMicroWishVO
-     *            用户评价
+     * @param comActMicroWishVO 用户评价
      * @return 确认结果
      */
     @Override
@@ -239,17 +355,20 @@
             return R.fail("心愿不存在");
         }
         Integer status = comActMicroWishDO1.getStatus();
-        if (status.intValue() != 5) {
-            return R.fail("心愿状态不是待确认");
+        if (!status.equals(ComActMicroWishDO.status.dqr)) {
+            return R.fail("心愿状态不是待确认状态");
         }
-        ComActMicroWishDO comActMicroWishDO = new ComActMicroWishDO();
+        ComActMicroWishDO comActMicroWishDO=new ComActMicroWishDO();
         comActMicroWishDO.setId(comActMicroWishVO.getId());
         comActMicroWishDO.setEvaluateAt(comActMicroWishVO.getEvaluateAt());
         comActMicroWishDO.setStatus(comActMicroWishVO.getStatus());
         comActMicroWishDO.setScore(comActMicroWishVO.getScore());
         comActMicroWishDO.setEvaluate(comActMicroWishVO.getEvaluate());
         int update = comActMicroWishDAO.updateById(comActMicroWishDO);
-        if (update > 0) {
+        if (update>0) {
+            //用户确认心愿添加操作记录
+            wishOperationRecordService.addOperationRecord(comActMicroWishVO.getEvaluate(),comActMicroWishDO1.getSponsorId()
+                    ,comActMicroWishDO1.getId(),ComActMicroWishOperationRecordDO.type.wc,"用户已确认",null);
             return R.ok();
         }
         return R.fail();
@@ -258,45 +377,49 @@
     /**
      * 社区首页代办事件集合
      *
-     * @param communityId
-     *            社区id
-     * @param userId
-     *            登录用户
+     * @param communityId 社区id
+     * @param userId      登录用户
      * @return 代办事件集合
      */
     @Override
     public List<TodoEventsVO> selectNeedToDo(Long communityId, Long userId) {
-        List<TodoEventsVO> todoEventsVOS = comActMicroWishDAO.selectNeedToDo(communityId, userId);
+        List<TodoEventsVO> todoEventsVOS=comActMicroWishDAO.selectNeedToDo(communityId,userId);
         return todoEventsVOS;
     }
 
     @Override
     public R deleteMicroWish(Long id) {
         ComActMicroWishDO comActMicroWishDO = comActMicroWishDAO.selectById(id);
-        if (comActMicroWishDO == null) {
+        if(comActMicroWishDO==null){
             return R.fail("id有误!");
         }
         comActMicroWishDAO.deleteById(id);
-        comActMicroWishUserDAO
-            .delete(new LambdaQueryWrapper<ComActMicroWishUserDO>().eq(ComActMicroWishUserDO::getMicroWishId, id));
+        comActMicroWishUserDAO.delete(new LambdaQueryWrapper<ComActMicroWishUserDO>().eq(ComActMicroWishUserDO::getMicroWishId,id));
         return R.ok();
     }
 
     @Override
     public R timedTaskActMicroWishAll() {
-        int num = comActMicroWishDAO.updateStatusAutoConfirm();
-        log.info("定时任务--修改待自动确认微心愿状态数量【{}】", num);
+
+        //微心愿自动确认前需要添加操作记录
+        List<Long> wishIds = comActMicroWishDAO.getWishAutoConfirmIds();
+        wishIds.forEach(wishId -> {
+            //需要添加操作记录
+            wishOperationRecordService.addOperationRecord("系统自动确认微心愿",null
+                    ,wishId, ComActMicroWishOperationRecordDO.type.zd,"系统自动确认微心愿",null);
+        });
+        int num=comActMicroWishDAO.updateStatusAutoConfirm();
+        log.info("定时任务--修改待自动确认微心愿状态数量【{}】",num);
         return R.ok();
     }
 
     @Override
-    public R getScreenMicroList(ScreenMicroListDTO microListDTO) {
-        IPage<MicroListVO> microListVOIPage = comActMicroWishDAO
-            .getScreenMicroList(new Page(microListDTO.getPageNum(), microListDTO.getPageSize()), microListDTO);
-        if (!microListVOIPage.getRecords().isEmpty()) {
+    public R getScreenMicroList(ScreenMicroListDTO microListDTO){
+        IPage<MicroListVO> microListVOIPage = comActMicroWishDAO.getScreenMicroList(new Page(microListDTO.getPageNum(),microListDTO.getPageSize()),microListDTO);
+        if(!microListVOIPage.getRecords().isEmpty()){
             microListVOIPage.getRecords().forEach(microListVO -> {
                 Integer count = comActMicroWishUserDAO.selectCount(new QueryWrapper<ComActMicroWishUserDO>().lambda()
-                    .eq(ComActMicroWishUserDO::getMicroWishId, microListVO.getId()));
+                        .eq(ComActMicroWishUserDO::getMicroWishId,microListVO.getId()));
                 microListVO.setStarNum(count);
             });
         }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java
index c904152..5e10984 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java
@@ -6,6 +6,7 @@
 
 import javax.annotation.Resource;
 
+import com.panzhihua.service_community.service.ComActNeighborCircleTopicService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -15,6 +16,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.constants.NeighborCircleConstants;
 import com.panzhihua.common.model.dtos.neighbor.*;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.neighbor.*;
@@ -60,10 +62,12 @@
     private ComActDAO comActDAO;
     @Resource
     private ComActNeighborCircleTopicMapper comActNeighborCircleTopicMapper;
+    @Resource
+    private ComActNeighborCircleTopicService comActNeighborCircleTopicService;
 
     /**
      * 分页查询邻里圈列表
-     * 
+     *
      * @param neighborCircleAppDTO
      *            请求参数
      * @return 邻里圈列表
@@ -104,7 +108,7 @@
 
     /**
      * 用户发布邻里圈审核
-     * 
+     *
      * @param addNeighborCircleAppDTO
      *            邻里圈请求参数
      * @return 发布结果
@@ -123,7 +127,42 @@
         if (StringUtils.isNotEmpty(addNeighborCircleAppDTO.getPhone())) {
             neighborCircleDO.setReleasePhone(addNeighborCircleAppDTO.getPhone());
         }
-        if (this.baseMapper.insert(neighborCircleDO) > 0) {
+        //判断用户的话题是否是新增的
+        if(StringUtils.isNotEmpty(addNeighborCircleAppDTO.getTopicName())){
+            //新增邻里圈话题
+            ComActNeighborCircleTopicDO circleTopicDO = comActNeighborCircleTopicMapper.selectOne(new QueryWrapper<ComActNeighborCircleTopicDO>()
+                    .lambda().eq(ComActNeighborCircleTopicDO::getCommunityId,neighborCircleDO.getCommunityId())
+                    .eq(ComActNeighborCircleTopicDO::getName,addNeighborCircleAppDTO.getTopicName()));
+            if(circleTopicDO == null){
+                circleTopicDO = new ComActNeighborCircleTopicDO();
+                circleTopicDO.setCommunityId(neighborCircleDO.getCommunityId());
+                circleTopicDO.setName(addNeighborCircleAppDTO.getTopicName());
+                circleTopicDO.setCreateBy(neighborCircleDO.getReleaseId());
+                circleTopicDO.setCreateAt(new Date());
+                circleTopicDO.setCount(0);
+                circleTopicDO.setHotNum(0L);
+                circleTopicDO.setStatus(ComActNeighborCircleTopicDO.status.yes);
+                comActNeighborCircleTopicMapper.insert(circleTopicDO);
+            }
+            neighborCircleDO.setTopicId(circleTopicDO.getId());
+        }
+        //判断当前邻里圈是否需要审核
+        if(addNeighborCircleAppDTO.getIsExamine().equals(AddComActNeighborCircleAppDTO.isExamine.no)){
+            //当邻里圈不需要审核才进入自动审核
+            //判断邻里圈自动审核结果
+            if(addNeighborCircleAppDTO.getWxExamineResult().equals(AddComActNeighborCircleAppDTO.isExamine.yes)){
+                neighborCircleDO.setStatus(ComActNeighborCircleDO.status.xs);
+                if(neighborCircleDO.getTopicId() != null){
+                    //给邻里圈话题添加邻里圈数量
+                    comActNeighborCircleTopicMapper.addCount(neighborCircleDO.getTopicId());
+                }
+            }else{
+                neighborCircleDO.setStatus(ComActNeighborCircleDO.status.bh);
+                neighborCircleDO.setRefuseReason("内容违规");
+            }
+        }
+
+        if(this.baseMapper.insert(neighborCircleDO) > 0){
             return R.ok();
         } else {
             return R.fail("发布失败");
@@ -132,7 +171,7 @@
 
     /**
      * 查看邻里圈详情
-     * 
+     *
      * @param neighborCircleAppDTO
      *            请求参数
      * @return 邻里圈详情
@@ -281,12 +320,17 @@
             neighborCircleDO.setRefuseReason(editVO.getRefuseReason());
         }
         this.baseMapper.updateById(neighborCircleDO);
+
+        if(editVO.getStatus().equals(EditNeighborCircleAdminVO.status.xs) && neighborCircleDO.getTopicId() != null){
+            //给邻里圈话题添加邻里圈数量
+            comActNeighborCircleTopicMapper.addCount(neighborCircleDO.getTopicId());
+        }
         return R.ok(neighborCircleDO.getReleaseId());
     }
 
     /**
      * 用户查询邻里圈列表
-     * 
+     *
      * @param neighborCircleAppDTO
      *            请求参数
      * @return 邻里圈列表
@@ -318,7 +362,7 @@
 
     /**
      * 邻里圈点赞
-     * 
+     *
      * @param fabulousAppDTO
      *            请求参数
      * @return 点赞结果
@@ -349,7 +393,11 @@
             if (neighborCircleDO != null) {
                 neighborCircleDO.setFabulousNum(neighborCircleDO.getFabulousNum() + 1);
                 neighborCircleDO.setViewsNum(neighborCircleDO.getViewsNum() + 1);
+                //计算需要增加的热度值
+                Long hotNum = NeighborCircleConstants.FABULOUS_HOT_NUM + NeighborCircleConstants.VIEW_HOT_NUM;
+                neighborCircleDO.setHotNum(neighborCircleDO.getHotNum() + hotNum);
                 this.baseMapper.updateById(neighborCircleDO);
+                comActNeighborCircleTopicMapper.addHotNum(neighborCircleDO.getTopicId(),hotNum);
                 circleFabulousDO.setCircleId(neighborCircleDO.getId());
             }
             // 添加邻里圈浏览记录
@@ -371,6 +419,10 @@
             if (circleCommentDO != null) {
                 circleCommentDO.setFabulousNum(circleCommentDO.getFabulousNum() + 1);
                 comActNeighborCircleCommentDAO.updateById(circleCommentDO);
+                //计算需要增加的热度值
+                Long hotNum = NeighborCircleConstants.FABULOUS_HOT_NUM + NeighborCircleConstants.VIEW_HOT_NUM;
+                this.baseMapper.addTopicHotNum(circleCommentDO.getCircleId(),hotNum);
+                this.baseMapper.addHotNum(circleCommentDO.getCircleId(),hotNum);
                 circleFabulousDO.setCircleId(circleCommentDO.getCircleId());
             }
         } else if (fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.hf)) {
@@ -389,6 +441,10 @@
             if (circleCommentReplyDO != null) {
                 circleCommentReplyDO.setFabulousNum(circleCommentReplyDO.getFabulousNum() + 1);
                 comActNeighborCircleCommentReplyDAO.updateById(circleCommentReplyDO);
+                //计算需要增加的热度值
+                Long hotNum = NeighborCircleConstants.FABULOUS_HOT_NUM + NeighborCircleConstants.VIEW_HOT_NUM;
+                this.baseMapper.addTopicHotNum(circleCommentReplyDO.getCircleId(),hotNum);
+                this.baseMapper.addHotNum(circleCommentReplyDO.getCircleId(),hotNum);
                 circleFabulousDO.setCircleId(circleCommentReplyDO.getCircleId());
             }
         }
@@ -401,7 +457,7 @@
 
     /**
      * 邻里圈转发
-     * 
+     *
      * @param forwardAppDTO
      *            请求参数
      * @return 转发结果
@@ -419,7 +475,11 @@
             return R.fail("没有找到邻里圈");
         }
         circleDO.setForwardNum(circleDO.getForwardNum() + 1);
-        if (this.baseMapper.updateById(circleDO) > 0) {
+        if (this.baseMapper.updateById(circleDO) > 0){
+            //计算需要增加的热度值
+            Long hotNum = NeighborCircleConstants.VIEW_HOT_NUM;
+            this.baseMapper.addHotNum(forwardAppDTO.getCircleId(),hotNum);
+            this.baseMapper.addTopicHotNum(forwardAppDTO.getCircleId(),hotNum);
             return R.ok();
         } else {
             return R.fail("转发失败");
@@ -428,7 +488,7 @@
 
     /**
      * 邻里圈评论
-     * 
+     *
      * @param commentAppDTO
      *            请求参数
      * @return 评论结果
@@ -447,6 +507,11 @@
         neighborCircleDO.setReplyAt(new Date());
         this.baseMapper.updateById(neighborCircleDO);
 
+        //计算需要增加的热度值
+        Long hotNum = NeighborCircleConstants.COMMENT_HOT_NUM;
+        this.baseMapper.addHotNum(commentAppDTO.getCircleId(),hotNum);
+        this.baseMapper.addTopicHotNum(commentAppDTO.getCircleId(),hotNum);
+
         circleCommentDO.setCircleId(commentAppDTO.getCircleId());
         circleCommentDO.setUserId(commentAppDTO.getUserId());
         circleCommentDO.setUserPhone(commentAppDTO.getPhone());
@@ -464,7 +529,7 @@
 
     /**
      * 邻里圈回复
-     * 
+     *
      * @param replyAppDTO
      *            请求参数
      * @return 回复结果
@@ -481,6 +546,11 @@
         neighborCircleDO.setCommentNum(neighborCircleDO.getCommentNum() + 1);
         neighborCircleDO.setReplyAt(new Date());
         this.baseMapper.updateById(neighborCircleDO);
+
+        //计算需要增加的热度值
+        Long hotNum = NeighborCircleConstants.COMMENT_HOT_NUM;
+        this.baseMapper.addHotNum(replyAppDTO.getCircleId(),hotNum);
+        this.baseMapper.addTopicHotNum(replyAppDTO.getCircleId(),hotNum);
 
         circleCommentReplyDO.setCircleId(replyAppDTO.getCircleId());
         circleCommentReplyDO.setUserId(replyAppDTO.getUserId());
@@ -649,6 +719,7 @@
         BeanUtils.copyProperties(commentDO, vo);
         String name = user.getName() == null ? user.getNickName() : user.getName();
         vo.setUserName(name);
+        vo.setUserPhone(user.getPhone());
         return R.ok(vo);
     }
 
@@ -691,12 +762,13 @@
 
     /**
      * 邻里圈取消点赞
-     * 
+     *
      * @param fabulousAppDTO
      *            请求参数
      * @return 取消点赞结果
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public R neighborFabulousCancelByApp(ComActNeighborFabulousAppDTO fabulousAppDTO) {
         ComActNeighborCircleFabulousDO circleFabulousDO = null;
         // 查询邻里圈点赞信息
@@ -718,6 +790,10 @@
             if (neighborCircleDO != null) {
                 neighborCircleDO.setFabulousNum(neighborCircleDO.getFabulousNum() - 1);
                 this.baseMapper.updateById(neighborCircleDO);
+                //计算需要增加的热度值
+                Long hotNum = NeighborCircleConstants.FABULOUS_HOT_NUM;
+                this.baseMapper.addHotNum(neighborCircleDO.getId(),-hotNum);
+                this.baseMapper.addTopicHotNum(neighborCircleDO.getId(),-hotNum);
             }
         } else if (fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.pl)) {
             circleFabulousDO =
@@ -737,6 +813,10 @@
             if (circleCommentDO != null) {
                 circleCommentDO.setFabulousNum(circleCommentDO.getFabulousNum() - 1);
                 comActNeighborCircleCommentDAO.updateById(circleCommentDO);
+                //计算需要增加的热度值
+                Long hotNum = NeighborCircleConstants.FABULOUS_HOT_NUM;
+                this.baseMapper.addHotNum(circleCommentDO.getCircleId(),-hotNum);
+                this.baseMapper.addTopicHotNum(circleCommentDO.getCircleId(),-hotNum);
             }
         } else if (fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.hf)) {
             circleFabulousDO =
@@ -755,6 +835,10 @@
             if (circleCommentReplyDO != null) {
                 circleCommentReplyDO.setFabulousNum(circleCommentReplyDO.getFabulousNum() - 1);
                 comActNeighborCircleCommentReplyDAO.updateById(circleCommentReplyDO);
+                //计算需要增加的热度值
+                Long hotNum = NeighborCircleConstants.FABULOUS_HOT_NUM;
+                this.baseMapper.addHotNum(circleCommentReplyDO.getCircleId(),-hotNum);
+                this.baseMapper.addTopicHotNum(circleCommentReplyDO.getCircleId(),-hotNum);
             }
         }
         if (circleFabulousDO != null) {
@@ -766,7 +850,7 @@
 
     /**
      * 添加邻里圈浏览记录
-     * 
+     *
      * @param addBrowseAppDTO
      *            请求参数
      * @return 返回参数
@@ -781,13 +865,18 @@
         if (neighborCircleDO != null) {
             neighborCircleDO.setViewsNum(neighborCircleDO.getViewsNum() + 1);
             this.baseMapper.updateById(neighborCircleDO);
+
+            //计算需要增加的热度值
+            Long hotNum = NeighborCircleConstants.FABULOUS_HOT_NUM;
+            this.baseMapper.addHotNum(neighborCircleDO.getId(),hotNum);
+            this.baseMapper.addTopicHotNum(neighborCircleDO.getId(),hotNum);
         }
         return R.ok();
     }
 
     /**
      * 分页查询评论下所有回复
-     * 
+     *
      * @param commentReplyAppDTO
      *            请求参数
      * @return 回复列表
@@ -818,4 +907,20 @@
         }
         return R.ok(neighborCircleIPage);
     }
+
+    /**
+     * 小程序-删除邻里圈
+     * @param circleTopicAppDTO 请求参数
+     * @return  删除结果
+     */
+    @Override
+    public R deleteNeighborByApp(DeleteNeighborCircleAppDTO circleTopicAppDTO){
+        ComActNeighborCircleDO neighborCircleDO = new ComActNeighborCircleDO();
+        neighborCircleDO.setId(circleTopicAppDTO.getId());
+        neighborCircleDO.setIsDel(ComActNeighborCircleDO.isDel.yes);
+        if(this.baseMapper.updateById(neighborCircleDO) > 0){
+            return R.ok();
+        }
+        return R.fail();
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleTopicServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleTopicServiceImpl.java
index cb78a4b..b573b35 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleTopicServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleTopicServiceImpl.java
@@ -9,7 +9,9 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.panzhihua.common.model.dtos.neighbor.AddNeighborCircleTopicAdminDTO;
+import com.panzhihua.common.model.dtos.neighbor.AddNeighborCircleTopicAppDTO;
 import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleTopicAdminDTO;
+import com.panzhihua.common.model.dtos.neighbor.DeleteNeighborCircleAppDTO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.utlis.StringUtils;
 import com.panzhihua.service_community.dao.ComActNeighborCircleTopicMapper;
@@ -31,7 +33,7 @@
 
     /**
      * 分页查询邻里圈话题列表
-     * 
+     *
      * @param circleTopicAdminDTO
      *            请求参数
      * @return 邻里圈话题列表
@@ -44,7 +46,7 @@
 
     /**
      * 添加邻里圈话题
-     * 
+     *
      * @param addCircleTopicAdminDTO
      *            请求参数
      * @return 添加结果
@@ -72,7 +74,7 @@
 
     /**
      * 编辑邻里圈话题
-     * 
+     *
      * @param addCircleTopicAdminDTO
      *            请求参数
      * @return 编辑结果
@@ -105,14 +107,37 @@
 
     /**
      * 小程序查询邻里圈话题列表
-     * 
+     *
      * @param communityId
      *            社区id
      * @return 邻里圈话题列表
      */
     @Override
-    public R getNeighborTopicByApp(Long communityId) {
-        return R.ok(this.baseMapper.getNeighborTopicByApp(communityId));
+    public R getNeighborTopicByApp(Long communityId,Integer isZero,String name){
+        return R.ok(this.baseMapper.getNeighborTopicByApp(communityId,isZero,name));
     }
 
+    /**
+     * 小程序-用户新增话题
+     * @param circleTopicAppDTO 请求参数
+     * @return  新增结果
+     */
+    @Override
+    public R addNeighborTopicByApp(AddNeighborCircleTopicAppDTO circleTopicAppDTO){
+        ComActNeighborCircleTopicDO circleTopicDO = this.baseMapper.selectOne(new QueryWrapper<ComActNeighborCircleTopicDO>()
+                .lambda().eq(ComActNeighborCircleTopicDO::getCommunityId,circleTopicAppDTO.getCommunityId())
+                .eq(ComActNeighborCircleTopicDO::getName,circleTopicAppDTO.getName()));
+        if(circleTopicDO == null){
+            circleTopicDO = new ComActNeighborCircleTopicDO();
+            circleTopicDO.setCommunityId(circleTopicAppDTO.getCommunityId());
+            circleTopicDO.setName(circleTopicAppDTO.getName());
+            circleTopicDO.setCreateBy(circleTopicAppDTO.getUserId());
+            circleTopicDO.setCreateAt(new Date());
+            circleTopicDO.setCount(0);
+            circleTopicDO.setHotNum(0L);
+            circleTopicDO.setStatus(ComActNeighborCircleTopicDO.status.yes);
+            this.baseMapper.insert(circleTopicDO);
+        }
+        return R.ok(circleTopicDO);
+    }
 }
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 c9c8a1d..bed5874 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
@@ -151,6 +151,7 @@
                         subSelectionDO.setCreateBy(userId);
                         subSelectionDO.setType(subSelect.getType());
                         subSelectionDO.setKey(subSelect.getKey());
+                        subSelectionDO.setUrl(subSelect.getUrl());
                         subSelectionList.add(subSelectionDO);
                     }
                 }
@@ -191,6 +192,9 @@
                 }
                 if (vo.getAdverPositionApplication().equals(ComActQuestnaireDO.isOk.yes)) {
                     sb.append("首页应用,");
+                }
+                if (vo.getIsCover().equals(ComActQuestnaireDO.isOk.yes)) {
+                    sb.append("设置封面,");
                 }
                 String advertPosition = sb.toString();
                 if (advertPosition.length() > 0) {
@@ -474,26 +478,23 @@
          * 查询题目
          */
         List<ComActQuestnaireSubDO> list = questnaireSubDAO.selectList(
-            new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId));
+            new QueryWrapper<ComActQuestnaireSubDO>().lambda()
+                    .eq(ComActQuestnaireSubDO::getQueId, questId).orderByAsc(ComActQuestnaireSubDO::getCreateAt));
         List<ComActQuestnaireSubVO> listSubVo = new ArrayList<>();
         list.forEach(subDo -> {
-            ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO();
-            BeanUtils.copyProperties(subDo, comActQuestnaireSubVO);
-            listSubVo.add(comActQuestnaireSubVO);
+            if(!subDo.getType().equals(ComActQuestnaireSubDO.type.describe)){
+                ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO();
+                BeanUtils.copyProperties(subDo, comActQuestnaireSubVO);
+                listSubVo.add(comActQuestnaireSubVO);
+            }
         });
         questnaireAnswersDTO.setSubs(listSubVo);
         /**
          * 查询用户回答
          */
-        List<ComActQuestnaireAnswerContentDO> questnaireAnswerContentDOList =
+        List<ComActQuestnaireAnswerContentVO> questnaireAnswerContentDOList =
             questnaireAnswerContentDAO.selectListByQuestnaire(questId);
-        List<ComActQuestnaireAnswerContentVO> vos = new ArrayList<>();
-        questnaireAnswerContentDOList.forEach(dos -> {
-            ComActQuestnaireAnswerContentVO vo = new ComActQuestnaireAnswerContentVO();
-            BeanUtils.copyProperties(dos, vo);
-            vos.add(vo);
-        });
-        questnaireAnswersDTO.setAnswers(vos);
+        questnaireAnswersDTO.setAnswers(questnaireAnswerContentDOList);
 
         return R.ok(questnaireAnswersDTO);
     }
@@ -509,10 +510,10 @@
     @Override
     public R pageQuestnaireAnswer(PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO) {
         if (pageQuestnaireAnswerDTO.getPageNum() == null || pageQuestnaireAnswerDTO.getPageNum().longValue() == 0) {
-            pageQuestnaireAnswerDTO.setPageNum(1l);
+            pageQuestnaireAnswerDTO.setPageNum(1L);
         }
         if (pageQuestnaireAnswerDTO.getPageSize() == null || pageQuestnaireAnswerDTO.getPageSize().longValue() == 0) {
-            pageQuestnaireAnswerDTO.setPageSize(10l);
+            pageQuestnaireAnswerDTO.setPageSize(10L);
         }
         Page userPage = new Page(pageQuestnaireAnswerDTO.getPageNum(), pageQuestnaireAnswerDTO.getPageSize());
         IPage<ComActQuestnaireAnswerContentVO> doPager =
@@ -583,8 +584,7 @@
 
                 Long queSubId = questnaireSubDO.getId();
                 // 根据上传的类型查询不同的题目选项
-                if (questnaiteSub.getType().equals(QuestnaiteSubVO.type.danxuan)) {
-
+                if (questnaiteSub.getType().equals(QuestnaiteSubVO.type.danxuan) || questnaiteSub.getType().equals(QuestnaiteSubVO.type.imgselect)) {
                     // 单选题处理
                     ComActQuestnaireSubSelectionDO subSelectionDO =
                         questnaireSubSelectionDAO.selectOne(new QueryWrapper<ComActQuestnaireSubSelectionDO>().lambda()
@@ -632,7 +632,7 @@
                         answerContentDO.setAnswerContent(subSelectionDO.getContent());
                         answerContentList.add(answerContentDO);
                     }
-                } else if (questnaiteSub.getType().equals(QuestnaiteSubVO.type.wenda)) {
+                } else {
                     // 问答题处理
                     String values = questnaiteSub.getValues();
                     ComActQuestnaireAnswerContentDO answerContentDO = new ComActQuestnaireAnswerContentDO();
@@ -648,8 +648,6 @@
         }
         // 新增用户填写的答卷
         if (!answerContentList.isEmpty()) {
-            answerContentService.saveBatch(answerContentList);
-
             // 更新回答用户数量
             Integer joinCount = questnaireDO.getJoinCount();
             questnaireDO.setJoinCount(joinCount != null ? joinCount + 1 : 1);
@@ -663,6 +661,11 @@
             userAnswerDO.setJsonObject(answerQuestnaireVO.getJsonObject());
             comActQuestnaireUserAnswerMapper.insert(userAnswerDO);
 
+            answerContentList.forEach(answerContent -> {
+                answerContent.setAnswerId(userAnswerDO.getId());
+            });
+            answerContentService.saveBatch(answerContentList);
+
         }
         return R.ok();
     }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java
index cd2acfe..8653945 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java
@@ -13,6 +13,7 @@
 import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedAnswerVO;
 import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedVO;
 import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
 import com.panzhihua.service_community.dao.ComActReserveAnswerContentMapper;
 import com.panzhihua.service_community.dao.ComActReserveSubMapper;
 import com.panzhihua.service_community.model.dos.ComActQuestnaireAnswerContentDO;
@@ -50,12 +51,15 @@
         QuestnaireAnswersDTO result = new QuestnaireAnswersDTO();
 
         //查询题目
-        List<ComActReserveSubDO> list = comActReserveSubMapper.selectList(new QueryWrapper<ComActReserveSubDO>().lambda().eq(ComActReserveSubDO::getReserveId, reserveId));
+        List<ComActReserveSubDO> list = comActReserveSubMapper.selectList(new QueryWrapper<ComActReserveSubDO>().lambda()
+                .eq(ComActReserveSubDO::getReserveId, reserveId).orderByAsc(ComActReserveSubDO::getCreateAt));
         List<ComActQuestnaireSubVO> listSubVo = new ArrayList<>();
         list.forEach(subDo -> {
-            ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO();
-            BeanUtils.copyProperties(subDo, comActQuestnaireSubVO);
-            listSubVo.add(comActQuestnaireSubVO);
+            if(!subDo.getType().equals(5)){
+                ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO();
+                BeanUtils.copyProperties(subDo, comActQuestnaireSubVO);
+                listSubVo.add(comActQuestnaireSubVO);
+            }
         });
         result.setSubs(listSubVo);
 
@@ -73,7 +77,7 @@
      */
     @Override
     public R registerDetailedListAdmin(PageReserveRegisterDetailedAdminDTO detailedAdminDTO){
-        IPage<HashMap<String,Object>> resultPage = new Page<>();
+        IPage<HashMap<String,String>> resultPage = new Page<>();
 
         IPage<ComActReserveRegisterDetailedVO> registerDetailedPage = this.baseMapper.pageRegisterDetailedListAdmin(new Page(detailedAdminDTO.getPageNum(),detailedAdminDTO.getPageSize()),detailedAdminDTO);
         resultPage.setCurrent(registerDetailedPage.getCurrent());
@@ -81,24 +85,37 @@
         resultPage.setSize(registerDetailedPage.getSize());
         resultPage.setPages(registerDetailedPage.getPages());
 
-        List<HashMap<String,Object>> resultMapList = new ArrayList<>();
-        Integer nub = 1;
+        List<HashMap<String,String>> resultMapList = new ArrayList<>();
+        int nub = 1;
         if(!registerDetailedPage.getRecords().isEmpty()){
             for (ComActReserveRegisterDetailedVO registerDetailed:registerDetailedPage.getRecords()) {
                 //渲染序号
-                HashMap<String,Object> map = new HashMap<>();
-                map.put("nub",nub);
+                HashMap<String,String> map = new HashMap<>();
+                map.put("nub",nub + "");
                 //渲染用户昵称
                 map.put("nickName",registerDetailed.getNickName());
                 //查询记录填写答案并装载到数据集中
                 List<ComActReserveRegisterDetailedAnswerVO> registerDetailedAnswerList = this.baseMapper.getRegisterDetailedAnswerList(registerDetailed.getId());
                 if(!registerDetailedAnswerList.isEmpty()){
                     for (ComActReserveRegisterDetailedAnswerVO detailed:registerDetailedAnswerList) {
-                        map.put(detailed.getReserveSubId() + "",detailed.getAnswerContent());
+                        if(!detailed.getType().equals(5)){
+                            if(detailed.getType().equals(1)){
+                                String key = detailed.getReserveSubId() + "";
+                                String value = map.get(key);
+                                if(StringUtils.isNotEmpty(value)){
+                                    value = value + "," + detailed.getAnswerContent();
+                                }else{
+                                    value = detailed.getAnswerContent();
+                                }
+                                map.put(key,value);
+                            }else{
+                                map.put(detailed.getReserveSubId() + "",detailed.getAnswerContent());
+                            }
+                        }
                     }
                 }
                 //渲染登记流水号
-                map.put("id",registerDetailed.getId());
+                map.put("id",registerDetailed.getId() + "");
                 //渲染登记时间
                 map.put("time", DateUtils.format(registerDetailed.getCreateAt(),DateUtils.ymdhms_format));
                 resultMapList.add(map);
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveRecordServiceImpl.java
index d8aab2a..9900897 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveRecordServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveRecordServiceImpl.java
@@ -8,6 +8,8 @@
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.reserve.*;
 import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
 import com.panzhihua.service_community.dao.*;
 import com.panzhihua.common.model.dtos.community.CancelRecordDTO;
 import com.panzhihua.common.model.vos.R;
@@ -27,6 +29,8 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
+
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
@@ -49,6 +53,8 @@
     private ComActReserveOperationRecordMapper comActReserveOperationRecordMapper;
     @Resource
     private ComActReserveOperationRecordService comActReserveOperationRecordService;
+    @Resource
+    private ComActActSignDAO comActActSignDAO;
 
     private final static String CANCEL="用户取消";
     @Override
@@ -70,6 +76,7 @@
                     comActReserveDO.setJoinCount(joinCount != null ? joinCount - 1 : 0);
                     comActReserveMapper.updateById(comActReserveDO);
                     ComActReserveOperationRecordDO comActReserveOperationRecordDO=new ComActReserveOperationRecordDO();
+                    comActReserveOperationRecordDO.setRemark(comActReserveRecord.getContent());
                     comActReserveOperationRecordDO.setReserveId(comActReserveRecordDO.getReserveId());
                     comActReserveOperationRecordDO.setReserveRecordId(comActReserveRecordDO.getId());
                     comActReserveOperationRecordDO.setType(ComActReserveOperationRecordDO.type.br);
@@ -77,7 +84,7 @@
                     comActReserveOperationRecordDO.setReserveContent(CANCEL);
                     comActReserveOperationRecordDO.setPhone(comActReserveRecordDO.getPhone());
                     comActReserveOperationRecordDO.setStatus(ComActReserveOperationRecordDO.status.qx);
-                    comActReserveOperationRecordDO.setUserId(comActReserveRecordDO.getUserId());
+                    comActReserveOperationRecordDO.setUserId(comActReserveRecord.getUserId());
                     comActReserveOperationRecordDO.setReserveTime(DateUtil.date());
                     comActReserveOperationRecordMapper.insert(comActReserveOperationRecordDO);
                     return R.ok();
@@ -133,12 +140,16 @@
             reserveRecordDTO.getIds().forEach(id -> {
                 ComActReserveRecordDO reserveRecordDO = comActReserveRecordMapper.selectById(id);
                 if(reserveRecordDO != null){
+                    //更新预约记录社区备注字段
+                    reserveRecordDO.setActRemark(reserveRecordDTO.getRemark());
+                    reserveRecordDO.setHandleId(userId);
+                    comActReserveRecordMapper.updateById(reserveRecordDO);
                     //取消预约返还可参加名额
                     comActReserveMapper.addReserveCountById(reserveRecordDO.getReserveId());
                     //添加操作记录
                     comActReserveOperationRecordService.addReserveOperationRecord(reserveRecordDO.getReserveId()
                             ,reserveRecordDO.getId(),reserveRecordDO.getUserId(),ComActReserveOperationRecordDO.type.sq,null
-                            ,"社区管理员取消预约",reserveRecordDTO.getRemark(),ComActReserveOperationRecordDO.status.qx,userId,null);
+                            ,"社区管理员取消预约",reserveRecordDTO.getRemark(),ComActReserveOperationRecordDO.status.qx,userId,new Date());
                 }
             });
             return R.ok();
@@ -222,27 +233,56 @@
         Date nowDate = new Date();
         Long userId = makeHandleDTO.getUserId();
         String remark = makeHandleDTO.getRemark();
+        WxXCXTempSend util = new WxXCXTempSend();
         List<ComActReserveRecordDO> updateList = new ArrayList<>();
         makeHandleDTO.getIds().forEach(id -> {
             ComActReserveRecordDO reserveRecordDO = this.baseMapper.selectById(id);
             if(reserveRecordDO != null){
                 Date reserveTime = DateUtils.stringToDate(makeHandleDTO.getMakeTime(),DateUtils.ymdhms_format);
+
+                //查询预约登记信息
+                ComActReserveDO reserveDO = comActReserveMapper.selectById(reserveRecordDO.getReserveId());
+                // 预约以后给用户推送消息
+                Map<String, String> map = comActActSignDAO.getUserOpenId(reserveRecordDO.getUserId());
+
                 //判断处理是否通过
                 if(makeHandleDTO.getIsOk().equals(MakeHandleAdminDTO.isOk.yes)){
                     reserveRecordDO.setStatus(ComActReserveRecordDO.status.cg);
                     comActReserveOperationRecordService.addReserveOperationRecord(reserveRecordDO.getReserveId()
                             ,id,reserveRecordDO.getUserId(),ComActReserveOperationRecordDO.type.sq,null
                             ,"社区管理员处理预约成功",remark,ComActReserveOperationRecordDO.status.cg,userId,reserveTime);
+                    if (map != null) {
+                        String openid = map.get("openid");
+                        try {
+                            WxUtil.sendSubscribeYYTX(openid, util.getAppAccessToken(), "预约成功",
+                                    reserveDO.getTitle(), reserveRecordDO.getName(), makeHandleDTO.getMakeTime());
+                        } catch (Exception e) {
+                            log.error("消息推送失败,失败原因:" + e.getMessage());
+                        }
+                    }
                 }else if(makeHandleDTO.getIsOk().equals(MakeHandleAdminDTO.isOk.no)){
                     reserveRecordDO.setStatus(ComActReserveRecordDO.status.sb);
                     comActReserveOperationRecordService.addReserveOperationRecord(reserveRecordDO.getReserveId()
                             ,id,reserveRecordDO.getUserId(),ComActReserveOperationRecordDO.type.sq,null
                             ,"社区管理员处理预约失败",remark,ComActReserveOperationRecordDO.status.sb,userId,null);
+
+                    if (map != null) {
+                        String openid = map.get("openid");
+                        try {
+                            WxUtil.sendSubscribeYYTX(openid, util.getAppAccessToken(), "预约失败",
+                                    reserveDO.getTitle(), reserveRecordDO.getName(), DateUtils.format(reserveRecordDO.getReserveTime(),DateUtils.ymdhms_format));
+                        } catch (Exception e) {
+                            log.error("消息推送失败,失败原因:" + e.getMessage());
+                        }
+                    }
+                    //预约失败时需要更新预约登记参与人数
+                    comActReserveMapper.addReserveCountById(reserveRecordDO.getReserveId());
                 }
                 reserveRecordDO.setActRemark(remark);
                 reserveRecordDO.setReserveTime(reserveTime);
                 reserveRecordDO.setUpdateAt(nowDate);
                 reserveRecordDO.setUpdateBy(userId);
+                reserveRecordDO.setHandleId(userId);
                 updateList.add(reserveRecordDO);
             }
         });
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java
index 4ed591c..5a3ef9d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java
@@ -10,8 +10,10 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
+import com.panzhihua.common.model.dtos.community.OperationDetailDTO;
 import com.panzhihua.common.model.dtos.community.reserve.*;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActReserveIndexVo;
 import com.panzhihua.common.model.vos.community.questnaire.QuestnaiteSubSelectionVO;
 import com.panzhihua.common.model.vos.community.questnaire.QuestnaiteSubVO;
 import com.panzhihua.common.model.vos.community.reserve.*;
@@ -84,12 +86,13 @@
             if(comActReserveDO!=null){
                 //查询当前用户是否已预约并判断是否能继续预约
                 if(comActReserveDO.getJoinAllCount()!=0){
-                    Integer count=comActReserveRecordMapper.selectCount(new QueryWrapper<ComActReserveRecordDO>().eq("reserve_id",comActReserveCommitVO.getId()));
+                    Integer count=comActReserveRecordMapper.selectCount(new QueryWrapper<ComActReserveRecordDO>()
+                            .eq("reserve_id",comActReserveCommitVO.getId())
+                            .eq("status",ComActReserveRecordDO.status.cg));
                     if(count>=comActReserveDO.getJoinAllCount()){
                         return R.fail("预约已上限");
                     }
                 }
-
 
                 List<ComActReserveRecordDO> list=comActReserveRecordMapper.selectList(new QueryWrapper<ComActReserveRecordDO>().eq("reserve_id",comActReserveCommitVO.getId()).eq("user_id",comActReserveCommitVO.getUserId()).in("status",1,2,3));
                 if(!list.isEmpty()&&list.size()>1&&comActReserveDO.getIsRepeat()==ComActReserveDO.isRepeat.no){
@@ -111,7 +114,7 @@
 
                             Long queSubId = questnaireSubDO.getId();
                             //根据上传的类型查询不同的题目选项
-                            if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.danxuan)){
+                            if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.danxuan) || questnaiteSub.getType().equals(QuestnaiteSubVO.type.imgselect)){
 
                                 //单选题处理
                                 ComActReserveSubSelectionDO subSelectionDO = comActReserveSubSelectionMapper.selectOne(new QueryWrapper<ComActReserveSubSelectionDO>()
@@ -156,16 +159,19 @@
                                     answerContentList.add(answerContentDO);
                                 }
                             }else{
-                                //问答题处理
-                                String values = questnaiteSub.getValues();
-                                ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO();
-                                answerContentDO.setUserId(userId);
-                                answerContentDO.setCreateAt(nowDate);
-                                answerContentDO.setCreateBy(userId);
-                                answerContentDO.setReserveSubId(queSubId);
-                                answerContentDO.setType(2);
-                                answerContentDO.setAnswerContent(values);
-                                answerContentList.add(answerContentDO);
+                                //文字描述不做处理
+                                if(!questnaiteSub.getType().equals(QuestnaiteSubVO.type.describe)){
+                                    //问答题处理
+                                    String values = questnaiteSub.getValues();
+                                    ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO();
+                                    answerContentDO.setUserId(userId);
+                                    answerContentDO.setCreateAt(nowDate);
+                                    answerContentDO.setCreateBy(userId);
+                                    answerContentDO.setReserveSubId(queSubId);
+                                    answerContentDO.setType(2);
+                                    answerContentDO.setAnswerContent(values);
+                                    answerContentList.add(answerContentDO);
+                                }
                             }
                         }
                         if(!answerContentList.isEmpty()){
@@ -307,6 +313,7 @@
                     subSelectionDO.setCreateAt(nowDate);
                     subSelectionDO.setType(subSelect.getType());
                     subSelectionDO.setKey(subSelect.getKey());
+                    subSelectionDO.setUrl(subSelect.getUrl());
                     subSelectionList.add(subSelectionDO);
                 }
             }
@@ -563,6 +570,7 @@
     public R getById(Long id,Long userId,Long recordId,Integer isBack) {
         ComActReserveDO comActReserveDO=comActReserveMapper.selectById(id);
         if(comActReserveDO!=null){
+            comActReserveDO.setViewNum(comActReserveDO.getViewNum()+1);
             ComActReserveDetailVO comActReserveDetailVO=new ComActReserveDetailVO();
             if(isBack!=1){
                 comActReserveDO.setViewNum(comActReserveDO.getViewNum()+1);
@@ -595,6 +603,8 @@
             if(comActReserveRecordDO!=null){
                 BeanUtils.copyProperties(comActReserveRecordDO,comActReserveDetailVO);
             }
+            //更新浏览量
+            comActReserveMapper.updateById(comActReserveDO);
             return R.ok(comActReserveDetailVO);
         }
         return R.fail("未查询到数据");
@@ -603,6 +613,23 @@
 
     @Override
     public R pageReserveList(PageUserReserveDTO pageUserReserveDTO) {
-        return R.ok(comActReserveRecordMapper.pageReserveList(new Page<ComActReserveDO>(pageUserReserveDTO.getPageNum(), pageUserReserveDTO.getPageSize()),pageUserReserveDTO));
+        IPage<ComActReserveAppletsVO> ipage = comActReserveRecordMapper.pageReserveList(new Page<>(pageUserReserveDTO.getPageNum(), pageUserReserveDTO.getPageSize()),pageUserReserveDTO);
+        OperationDetailDTO operationDetailDTO = new OperationDetailDTO();
+        ipage.getRecords().forEach(page -> {
+            operationDetailDTO.setReserveRecordId(page.getId());
+            List<ComOperationListVO> operationList = comActReserveRecordMapper.queryAll(operationDetailDTO);
+            page.setOperationList(operationList);
+        });
+        return R.ok(ipage);
+    }
+
+    /**
+     * 小程序查询所有进行中的预约登记
+     * @param communityId   社区id
+     * @return  社区所有进行中的预约登记列表
+     */
+    @Override
+    public R reserveListApplets(Long communityId){
+        return R.ok(this.baseMapper.getReserveIndexList(communityId));
     }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveSubServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveSubServiceImpl.java
index a745232..83b7e01 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveSubServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveSubServiceImpl.java
@@ -31,9 +31,14 @@
         List<ComActReserveSubListVO> resultList = new ArrayList<>(100);
         resultList.add(new ComActReserveSubListVO("nub","序号"));
         resultList.add(new ComActReserveSubListVO("nickName","用户昵称"));
-        List<ComActReserveSubListVO> list = this.baseMapper.getReserveSubjectList(reserveId);
-        if(list != null && !list.isEmpty()){
-            resultList.addAll(list);
+        List<ComActReserveSubListVO> subList = this.baseMapper.getReserveSubjectList(reserveId);
+        if(subList != null && !subList.isEmpty()){
+            subList.forEach(list -> {
+                if(!list.getType().equals(5)){
+                    resultList.add(list);
+                }
+            });
+//            resultList.addAll(list);
         }
         resultList.add(new ComActReserveSubListVO("id","登记流水"));
         resultList.add(new ComActReserveSubListVO("time","登记时间"));
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideClassifyServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideClassifyServiceImpl.java
new file mode 100644
index 0000000..d5b3e1e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideClassifyServiceImpl.java
@@ -0,0 +1,139 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.enums.PopulCultureLevelEnum;
+import com.panzhihua.common.enums.PopulMarriageEnum;
+import com.panzhihua.common.enums.PopulPoliticalOutlookEnum;
+import com.panzhihua.common.enums.PopulRelationEnum;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideClassifyVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationVO;
+import com.panzhihua.common.utlis.AgeUtils;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComActWorkGuideClassifyDAO;
+import com.panzhihua.service_community.dao.ComActWorkGuideDAO;
+import com.panzhihua.service_community.model.dos.ComActWorkGuideClassifyDO;
+import com.panzhihua.service_community.model.dos.ComActWorkGuideDO;
+import com.panzhihua.service_community.model.dos.ComMngPopulationHouseDO;
+import com.panzhihua.service_community.model.dos.ComMngUserTagDO;
+import com.panzhihua.service_community.service.ComActWorkGuideClassifyService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * title: ComActWorkGuideClassifyServiceImpl  社区》办事指南》分类管理服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》办事指南》分类管理服务实现类
+ *
+ * @author txb
+ * @date 2021/8/31 14:21
+ */
+@Slf4j
+@Service
+public class ComActWorkGuideClassifyServiceImpl extends ServiceImpl<ComActWorkGuideClassifyDAO, ComActWorkGuideClassifyDO> implements ComActWorkGuideClassifyService {
+
+    @Resource
+    private ComActWorkGuideClassifyDAO comActWorkGuideClassifyDAO;
+    @Resource
+    private ComActWorkGuideDAO comActWorkGuideDAO;
+
+    @Override
+    public R pageWorkGuideClassify(ComActWorkGuideClassifyVO comActWorkGuideClassifyVO) {
+        Page page = new Page<>();
+        Long pageNum = comActWorkGuideClassifyVO.getPageNum();
+        Long pageSize = comActWorkGuideClassifyVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1L;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10L;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+
+        IPage<ComActWorkGuideClassifyVO> iPage = comActWorkGuideClassifyDAO.pageWorkGuideClassify(page, comActWorkGuideClassifyVO);
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R addWorkGuideClassify(ComActWorkGuideClassifyVO comActWorkGuideClassifyVO) {
+        if (null != comActWorkGuideClassifyVO.getId() && comActWorkGuideClassifyVO.getId() != 0) {
+            // 修改
+            ComActWorkGuideClassifyDO comActWorkGuideClassifyDO = comActWorkGuideClassifyDAO.selectById(comActWorkGuideClassifyVO.getId());
+            if (null == comActWorkGuideClassifyDO) {
+                return R.fail("该办事指南分类不存在");
+            }
+            ComActWorkGuideClassifyDO checkCreditCode = comActWorkGuideClassifyDAO.selectOne(
+                    new QueryWrapper<ComActWorkGuideClassifyDO>().lambda().eq(ComActWorkGuideClassifyDO::getClassifyName, comActWorkGuideClassifyVO.getClassifyName()));
+            if (null != checkCreditCode && !comActWorkGuideClassifyDO.getId().equals(checkCreditCode.getId())) {
+                return R.fail("该办事指南分类已存在,办事指南分类名称重复");
+            }
+
+            BeanUtils.copyProperties(comActWorkGuideClassifyVO, comActWorkGuideClassifyDO);
+            int update = comActWorkGuideClassifyDAO.updateById(comActWorkGuideClassifyDO);
+            if (update > 0) {
+                return R.ok();
+            }
+        } else {
+            // 新增
+            Integer count = comActWorkGuideClassifyDAO.selectCount(
+                    new QueryWrapper<ComActWorkGuideClassifyDO>().lambda().eq(ComActWorkGuideClassifyDO::getClassifyName, comActWorkGuideClassifyVO.getClassifyName()));
+            if (count > 0) {
+                return R.fail("该办事指南分类已存在,办事指南分类名称重复");
+            }
+            ComActWorkGuideClassifyDO comActWorkGuideClassifyDO = new ComActWorkGuideClassifyDO();
+            BeanUtils.copyProperties(comActWorkGuideClassifyVO, comActWorkGuideClassifyDO);
+            int insert = comActWorkGuideClassifyDAO.insert(comActWorkGuideClassifyDO);
+            if (insert > 0) {
+                return R.ok();
+            }
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R deleteWorkGuideClassify(Long workGuideClassifyId) {
+        // 查询特殊群体人员
+        ComActWorkGuideClassifyDO comActWorkGuideClassifyDO = comActWorkGuideClassifyDAO.selectById(workGuideClassifyId);
+        if (comActWorkGuideClassifyDO == null) {
+            return R.fail("办事指南分类不存在");
+        }
+
+        Integer count = comActWorkGuideDAO.selectCount(new QueryWrapper<ComActWorkGuideDO>()
+                .lambda().eq(ComActWorkGuideDO::getClassify,workGuideClassifyId));
+        if(count > 0){
+            return R.fail("该分类下存在办事指南,不可删除");
+        }
+
+        int delete = comActWorkGuideClassifyDAO.deleteById(workGuideClassifyId);
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @Override
+    public R getWorkGuideClassifyList() {
+        List<ComActWorkGuideClassifyDO> comActWorkGuideClassifyDOS = comActWorkGuideClassifyDAO.selectList(null);
+        List<ComActWorkGuideClassifyVO> comActWorkGuideClassifyVOList = new ArrayList<>();
+        if (comActWorkGuideClassifyDOS != null && comActWorkGuideClassifyDOS.size() > 0) {
+            comActWorkGuideClassifyDOS.forEach(comActWorkGuideClassifyDO -> {
+                ComActWorkGuideClassifyVO comActWorkGuideClassifyVO = new ComActWorkGuideClassifyVO();
+                BeanUtils.copyProperties(comActWorkGuideClassifyDO, comActWorkGuideClassifyVO);
+                comActWorkGuideClassifyVOList.add(comActWorkGuideClassifyVO);
+            });
+        }
+        return R.ok(comActWorkGuideClassifyVOList);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideServiceImpl.java
index a53c178..38913b4 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideServiceImpl.java
@@ -1,10 +1,19 @@
 package com.panzhihua.service_community.service.impl;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 
+import com.panzhihua.common.utlis.AgeUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComActWorkGuideClassifyDAO;
+import com.panzhihua.service_community.model.dos.ComActWorkGuideClassifyDO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideAppletsVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideDetailAppletsVO;
+import com.panzhihua.service_community.dao.ComActWorkGuideClassifyDAO;
+import com.panzhihua.service_community.service.ComActWorkGuideClassifyService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
@@ -35,6 +44,8 @@
     static String AK = "W3x8DhCWKc2UFIwYgclpRBdL6BeGLLQt"; // 百度地图密钥
     @Resource
     ComActWorkGuideMaterialDAO workGuideMaterialDAO;
+    @Resource
+    private ComActWorkGuideClassifyDAO comActWorkGuideClassifyDAO;
     @Resource
     ComActDAO comActDAO;
 
@@ -145,6 +156,14 @@
         page.setSize(pageSize);
         page.setCurrent(pageNum);
         IPage<ComActWorkGuideVO> iPage = this.baseMapper.pageWorkGuide(page, pageActWorkGuideDTO);
+        if (!iPage.getRecords().isEmpty()) {
+            iPage.getRecords().forEach(comActWorkGuideVO -> {
+                ComActWorkGuideClassifyDO comActWorkGuideClassifyDO = comActWorkGuideClassifyDAO.selectById(comActWorkGuideVO.getClassify());
+                if (comActWorkGuideClassifyDO != null) {
+                    comActWorkGuideVO.setClassifyName(comActWorkGuideClassifyDO.getClassifyName());
+                }
+            });
+        }
         return R.ok(iPage);
     }
 
@@ -155,4 +174,37 @@
             .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideId));
         return R.ok();
     }
+
+    /**
+     * 办事指南列表-按分类查询
+     * @param pageActWorkGuideDTO   请求参数
+     * @return  办事指南分类列表
+     */
+    @Override
+    public R listWorkGuide(PageActWorkGuideDTO pageActWorkGuideDTO){
+        //结果数据集合
+        List<ComActWorkGuideAppletsVO> resultList = new ArrayList<>();
+
+        List<ComActWorkGuideAppletsVO> workGuideClassifyList = comActWorkGuideClassifyDAO.listWorkGuideClassify();
+        //通过办事指南分类查询分类下办事指南
+        workGuideClassifyList.forEach(workGuideClassify -> {
+            List<ComActWorkGuideDetailAppletsVO> workGuideList = this.baseMapper.getWorkGuideListByClassifyId(workGuideClassify.getId(),10L);
+            if(workGuideList != null && workGuideList.size() > 0){
+                workGuideClassify.setGuideDetailList(workGuideList);
+                //分类下办事指南数据大于0加入到结果集中向小程序展示
+                resultList.add(workGuideClassify);
+            }
+        });
+        return R.ok(resultList);
+    }
+
+    /**
+     * 根据办事指南分类id查询办事指南列表
+     * @param classifyId   办事指南分类id
+     * @return  办事指南列表数据
+     */
+    @Override
+    public R listWorkGuideByClassifyId(Long classifyId){
+        return R.ok(this.baseMapper.getWorkGuideListByClassifyId(classifyId,null));
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthElderliesServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthElderliesServiceImpl.java
new file mode 100644
index 0000000..c6568df
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthElderliesServiceImpl.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_community.dao.ComElderAuthElderliesDAO;
+import com.panzhihua.service_community.model.dos.ComElderAuthElderliesDO;
+import com.panzhihua.service_community.service.ComElderAuthElderliesService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * title: ComElderAuthElderliesServiceImpl  社区政务》高龄老人认证》高龄老人表服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区政务》高龄老人认证》高龄老人表服务实现类
+ *
+ * @author txb
+ * @date 2021/9/01 14:12
+ */
+@Slf4j
+@Service
+public class ComElderAuthElderliesServiceImpl extends ServiceImpl<ComElderAuthElderliesDAO, ComElderAuthElderliesDO> implements ComElderAuthElderliesService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java
new file mode 100644
index 0000000..6e53bfb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java
@@ -0,0 +1,467 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.util.IdcardUtil;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Objects;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.community.ComElderAuthRecordExcleVO;
+import com.panzhihua.common.model.vos.community.ComElderAuthRecordImportExcelVO;
+import com.panzhihua.common.model.vos.community.ComElderAuthRecordImportMistakeExcelVO;
+import com.panzhihua.common.model.vos.community.ComElderAuthRecordStatisticExcleVO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.base.Joiner;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.enums.*;
+import com.panzhihua.common.enums.PopulHouseUseEnum;
+import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO;
+import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
+import com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO;
+import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO;
+import com.panzhihua.common.model.helper.AESUtil;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComElderAuthRecordVO;
+import com.panzhihua.common.utlis.AgeUtils;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.dao.ComElderAuthElderliesDAO;
+import com.panzhihua.service_community.dao.ComElderAuthRecordsDAO;
+import com.panzhihua.service_community.dao.ComEldersAuthStatisticsMapper;
+import com.panzhihua.service_community.dao.ComMngPopulationDAO;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.model.dos.ComElderAuthElderliesDO;
+import com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO;
+import com.panzhihua.service_community.model.dos.ComEldersAuthStatisticsDO;
+import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
+import com.panzhihua.service_community.service.ComElderAuthRecordsService;
+
+import lombok.extern.slf4j.Slf4j;
+
+import static com.panzhihua.common.enums.IdentityApprovalStatusEnum.PASS_THROUGH;
+import static com.panzhihua.common.enums.IdentityApprovalStatusEnum.PENDING_REVIEW;
+import static com.panzhihua.common.enums.IdentityAuthMethodEnum.FACE_AUTH;
+import static com.panzhihua.common.enums.IdentityAuthStatusEnum.CERTIFIED;
+
+/**
+ * title: ComElderAuthRecordsServiceImpl  社区政务》高龄老人认证》认证记录表服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区政务》高龄老人认证》认证记录表服务实现类
+ *
+ * @author txb
+ * @date 2021/9/01 14:12
+ */
+@Slf4j
+@Service
+public class ComElderAuthRecordsServiceImpl extends ServiceImpl<ComElderAuthRecordsDAO, ComElderAuthRecordsDO> implements ComElderAuthRecordsService {
+
+    @Resource
+    private ComElderAuthRecordsDAO comElderAuthRecordsDAO;
+    @Resource
+    private ComElderAuthElderliesDAO comElderAuthElderliesDAO;
+    @Resource
+    private ComMngPopulationDAO comMngPopulationDAO;
+    @Resource
+    private ComElderAuthRecordsService comElderAuthRecordsService;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ComEldersAuthStatisticsMapper comEldersAuthStatisticsMapper;
+    @Value("${domain.aesKey:}")
+    private String aesKey;
+
+    @Override
+    public R pageElderAuthRecords(PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageElderAuthRecordsDTO.getPageNum();
+        Long pageSize = pageElderAuthRecordsDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1L;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10L;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComElderAuthRecordVO> iPage = comElderAuthRecordsDAO.pageElderAuthRecords(page, pageElderAuthRecordsDTO);
+        if (!iPage.getRecords().isEmpty()) {
+            iPage.getRecords().forEach(comElderAuthRecordVO -> {
+                if (StringUtils.isNotEmpty(comElderAuthRecordVO.getBirthday())) {
+                    comElderAuthRecordVO.setAge(AgeUtils.getAgeFromBirthTimes(comElderAuthRecordVO.getBirthday()));
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R detailElderAuthRecords(Long authRecordId) {
+        ComElderAuthRecordVO comElderAuthRecordVO = comElderAuthRecordsDAO.detailElderAuthRecords(authRecordId);
+        comElderAuthRecordVO.setNextIds(comElderAuthRecordsDAO.getNextIds(comElderAuthRecordVO.getCommunityId(),authRecordId));
+        return R.ok(comElderAuthRecordVO);
+    }
+
+    @Override
+    public R examineElderAuthRecords(ComElderAuthRecordVO comElderAuthRecordVO) {
+        ComElderAuthRecordsDO comElderAuthRecordsDO = comElderAuthRecordsDAO.selectById(comElderAuthRecordVO.getId());
+        if (comElderAuthRecordsDO == null) {
+            return R.fail("未查询到高龄老人认证记录");
+        }
+        if(!comElderAuthRecordsDO.getApprovalStatus().equals(ComElderAuthRecordsDO.approvalStatus.dsh)){
+            return R.fail("该记录已审核,不可重复审核");
+        }
+        ComElderAuthElderliesDO authElderliesDO = comElderAuthElderliesDAO.selectById(comElderAuthRecordsDO.getElderliesId());
+        if(authElderliesDO == null){
+            return R.fail("未查询到老人信息");
+        }
+
+        Date nowDate = new Date();
+        BeanUtils.copyProperties(comElderAuthRecordVO, comElderAuthRecordsDO);
+        comElderAuthRecordsDO.setApprovalDate(nowDate);
+        if (comElderAuthRecordVO.getApprovalStatus().equals(ComElderAuthRecordsDO.approvalStatus.tg)) {
+            comElderAuthRecordsDO.setAuthStatus(ComElderAuthRecordsDO.authStatus.yrz);
+        }
+        comElderAuthRecordsDO.setApprovalDate(new Date());
+        int nub = comElderAuthRecordsDAO.updateById(comElderAuthRecordsDO);
+        if (nub < 1) {
+            return R.fail("审核失败");
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R signElderAuthRecords(ComElderAuthRecordVO comElderAuthRecordVO) {
+        ComElderAuthRecordsDO comElderAuthRecordsDO = comElderAuthRecordsDAO.selectById(comElderAuthRecordVO.getId());
+        if (comElderAuthRecordsDO == null) {
+            return R.fail("未查询到高龄老人认证记录");
+        }
+        BeanUtils.copyProperties(comElderAuthRecordVO, comElderAuthRecordsDO);
+        int nub = comElderAuthRecordsDAO.updateById(comElderAuthRecordsDO);
+        if (nub < 1) {
+            return R.fail("标记失败");
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R getElderAuthRecordsByIds(List<Long> ids) {
+        List<ComElderAuthRecordExcleVO> comElderAuthRecordExcleVOS = comElderAuthRecordsDAO.getElderAuthRecordsByIds(ids);
+        if (null != comElderAuthRecordExcleVOS && comElderAuthRecordExcleVOS.size() > 0) {
+            comElderAuthRecordExcleVOS.forEach(comElderAuthRecordExcleVO -> {
+                if (StringUtils.isNotEmpty(comElderAuthRecordExcleVO.getBirthday())) {
+                    comElderAuthRecordExcleVO.setAge(AgeUtils.getAgeFromBirthTimes(comElderAuthRecordExcleVO.getBirthday()));
+                }
+            });
+        }
+        return R.ok(comElderAuthRecordExcleVOS);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R listSaveElderAuthRecordExcelVO(List<ComElderAuthRecordImportExcelVO> list, Long communityId, Long userId) {
+        // 需要新增的认证记录集合
+        List<ComElderAuthRecordsDO> saveList = new ArrayList<>();
+        // 需要修改的认证记录集合
+        List<ComElderAuthRecordsDO> updateList = new ArrayList<>();
+        log.info("开始处理导入数据");
+
+        List<ComElderAuthRecordImportMistakeExcelVO> mistakes = new ArrayList<>();
+        try {
+            // 查询所有人口数据放入HashMap中
+            List<ComMngPopulationDO> populationList = comMngPopulationDAO.selectList(null);
+            HashMap<String, Object> populationMap = new HashMap<>();
+            populationList.forEach(population -> {
+                String key = population.getCardNo();
+                populationMap.put(key, population);
+            });
+            Date nowDate = new Date();
+            for (ComElderAuthRecordImportExcelVO vo : list) {
+                // 判断实有人口是否已存在
+                log.info("开始查询实有人口是否已存在");
+                ComMngPopulationDO populationDO = null;
+                String populationKey = vo.getIdCard();
+                if (!isOnly(populationKey, populationMap)) {
+                    // 存在实有人口信息,则查询高龄信息(是否符合认证条件(健在且登记了高龄认证))
+                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
+                    ComElderAuthElderliesDO comElderAuthElderliesDO = comElderAuthElderliesDAO.selectOne(new QueryWrapper<ComElderAuthElderliesDO>()
+                            .lambda().eq(ComElderAuthElderliesDO::getPopulationId, populationDO.getId()).eq(ComElderAuthElderliesDO::getCommunityId, communityId));
+                    //不存在高龄信息,需要先导入高龄信息
+                    if (null == comElderAuthElderliesDO) {
+                        ComElderAuthRecordImportMistakeExcelVO mistake = new ComElderAuthRecordImportMistakeExcelVO();
+                        BeanUtils.copyProperties(vo, mistake);
+                        mistake.setMistake("该实有人口已存在,但本社区不存在高龄老人信息,请先导入高龄老人");
+                        mistake.setAuthDate(DateUtils.format(vo.getAuthDate(),DateUtils.yyyyMMdd_format));
+                        mistakes.add(mistake);
+                    }else {
+                        //存在高龄信息,判断是否满足认证条件
+                        if (StringUtils.isNotEmpty(vo.getBirthday())) {
+                            int age = IdcardUtil.getAgeByIdCard(vo.getIdCard());
+                            if (age < 80 || !comElderAuthElderliesDO.getIsRegister().equals(1) || !comElderAuthElderliesDO.getIsAlive().equals(1)) {
+                                ComElderAuthRecordImportMistakeExcelVO mistake = new ComElderAuthRecordImportMistakeExcelVO();
+                                BeanUtils.copyProperties(vo, mistake);
+                                mistake.setMistake("该人口未满80岁,或者不健在,或者未做高龄老人登记");
+                                mistake.setAuthDate(DateUtils.format(vo.getAuthDate(),DateUtils.yyyyMMdd_format));
+                                mistakes.add(mistake);
+                            }else {
+
+                                //满足认证条件,判断是否存在当期认证记录
+                                List<ComElderAuthRecordsDO> elderAuthRecordList = null;
+                                ComElderAuthRecordsDO comElderAuthRecordsDO = null;
+                                String authPeriod = vo.getAuthPeriod();
+                                elderAuthRecordList = comElderAuthRecordsDAO.selectList(new QueryWrapper<ComElderAuthRecordsDO>().lambda()
+                                        .eq(ComElderAuthRecordsDO::getElderliesId, comElderAuthElderliesDO.getId())
+                                        .eq(ComElderAuthRecordsDO::getAuthPeriod, authPeriod).orderByDesc(ComElderAuthRecordsDO::getCreateAt));
+                                if (null != elderAuthRecordList && elderAuthRecordList.size() > 0) {
+                                    comElderAuthRecordsDO = elderAuthRecordList.get(0);
+                                    //存在记录且状态为已认证,不能修改
+                                    if (comElderAuthRecordsDO.getApprovalStatus().equals(ComElderAuthRecordsDO.approvalStatus.tg)) {
+                                        ComElderAuthRecordImportMistakeExcelVO mistake = new ComElderAuthRecordImportMistakeExcelVO();
+                                        BeanUtils.copyProperties(vo, mistake);
+                                        mistake.setMistake("该人口本期已认证通过,不能重复认证");
+                                        mistake.setAuthDate(DateUtils.format(vo.getAuthDate(),DateUtils.yyyyMMdd_format));
+                                        mistakes.add(mistake);
+                                    }else if (comElderAuthRecordsDO.getApprovalStatus().equals(ComElderAuthRecordsDO.approvalStatus.dsh)) {
+                                        comElderAuthRecordsDO = updateElderAuthRecordsDO(vo, comElderAuthRecordsDO,userId,communityId,nowDate);
+                                        updateList.add(comElderAuthRecordsDO);
+                                    }else {
+                                        // 驳回状态,则新增
+                                        comElderAuthRecordsDO = saveElderAuthRecordsDO(vo, comElderAuthElderliesDO, authPeriod, userId,communityId,nowDate);
+                                        saveList.add(comElderAuthRecordsDO);
+                                    }
+                                }else {
+                                    // 不存在记录,则新增
+                                    comElderAuthRecordsDO = saveElderAuthRecordsDO(vo, comElderAuthElderliesDO, authPeriod, userId,communityId,nowDate);
+                                    saveList.add(comElderAuthRecordsDO);
+                                }
+                            }
+                        }
+                    }
+                } else {
+                    // 不存在实有人口,则新增
+                    ComElderAuthRecordImportMistakeExcelVO mistake = new ComElderAuthRecordImportMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    mistake.setMistake("不存在该实有人口,请先导入实有人口信息");
+                    mistake.setAuthDate(DateUtils.format(vo.getAuthDate(),DateUtils.yyyyMMdd_format));
+                    mistakes.add(mistake);
+                }
+                log.info("开始查询实有人口是否已存在完成");
+            }
+        } catch (Exception e) {
+            log.info("出现错误,错误原因:" + e.getMessage());
+        }
+        log.info("处理完成导入数据");
+
+        log.info("开始执行数据库导入");
+        if (!saveList.isEmpty()) {
+            log.info("执行数据库导入线下认证记录");
+            comElderAuthRecordsService.saveBatch(saveList);
+            log.info("数据库导入线下认证记录完成");
+        }
+        if (!updateList.isEmpty()) {
+            log.info("执行数据库更新线下认证记录");
+            comElderAuthRecordsDAO.updateAll(updateList);
+            log.info("数据库更新线下认证记录完成");
+        }
+        log.info("执行数据库导入完成");
+
+        if (!mistakes.isEmpty()) {
+            log.info("返回错误数据");
+            return R.fail(mistakes);
+        }
+        return R.ok(mistakes);
+    }
+
+    @Override
+    public R exportElderAuthRecordsStatistic(PageElderAuthStatisticDTO pageElderAuthRecordsDTO) {
+        List<ComElderAuthRecordStatisticExcleVO> comElderAuthRecordStatisticExcleVOS = comElderAuthRecordsDAO.exportElderAuthRecordsStatistic(pageElderAuthRecordsDTO);
+        if (null != comElderAuthRecordStatisticExcleVOS && comElderAuthRecordStatisticExcleVOS.size() > 0) {
+            comElderAuthRecordStatisticExcleVOS.forEach(comElderAuthRecordStatisticExcleVO -> {
+                if (StringUtils.isNotEmpty(comElderAuthRecordStatisticExcleVO.getBirthday())) {
+                    comElderAuthRecordStatisticExcleVO.setAge(AgeUtils.getAgeFromBirthTimes(comElderAuthRecordStatisticExcleVO.getBirthday()));
+                }
+            });
+        }
+        return R.ok(comElderAuthRecordStatisticExcleVOS);
+    }
+
+    @Override
+    public R timedTaskElderAuthStatisticsJobHandler() {
+        Date nowDate = new Date();
+        int month = DateUtils.getMonth(nowDate) + 1;
+        int year = DateUtils.getYear(nowDate);
+        //查询所有启用中社区
+        List<ComActDO> actList = comActDAO.selectList(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getState,0));
+        actList.forEach(act -> {
+            //高龄认证统计本期应认证人数
+            ComEldersAuthStatisticsDO comEldersAuthStatisticsDO = new ComEldersAuthStatisticsDO();
+            comEldersAuthStatisticsDO.setCommunityId(act.getCommunityId());
+            comEldersAuthStatisticsDO.setMonth(month);
+            comEldersAuthStatisticsDO.setYear(year);
+            comEldersAuthStatisticsDO.setCreateAt(nowDate);
+            List<ComElderAuthElderliesDO> comElderAuthElderliesDOS = comElderAuthElderliesDAO.selectList(new QueryWrapper<ComElderAuthElderliesDO>().lambda()
+                    .eq(ComElderAuthElderliesDO::getCommunityId, act.getCommunityId())
+                    .eq(ComElderAuthElderliesDO::getIsAlive, 1)
+                    .eq(ComElderAuthElderliesDO::getIsRegister, 1));
+            if (null != comElderAuthElderliesDOS) {
+                comEldersAuthStatisticsDO.setSum(comElderAuthElderliesDOS.size());
+            }
+            comEldersAuthStatisticsMapper.insert(comEldersAuthStatisticsDO);
+            //上期已认证人数
+            String authPeriod = "";
+            if (month < 10) {
+                authPeriod = String.valueOf(year) + 0 + month;
+            } else {
+                authPeriod = String.valueOf(year) + month;
+            }
+            int authSum = comElderAuthElderliesDAO.haveElderAuthElderliesAmount(act.getCommunityId(), authPeriod);
+            ComEldersAuthStatisticsDO comEldersAuthStatisticsDO1 = comEldersAuthStatisticsMapper.selectOne(new QueryWrapper<ComEldersAuthStatisticsDO>()
+                    .lambda().eq(ComEldersAuthStatisticsDO::getCommunityId, act.getCommunityId()).eq(ComEldersAuthStatisticsDO::getYear, year)
+                    .eq(ComEldersAuthStatisticsDO::getMonth, month - 1));
+            comEldersAuthStatisticsDO1.setAuthSum(authSum);
+            comEldersAuthStatisticsDO1.setNoAuthSum(comEldersAuthStatisticsDO1.getSum() - comEldersAuthStatisticsDO1.getAuthSum());
+            comEldersAuthStatisticsMapper.updateById(comEldersAuthStatisticsDO1);
+        });
+        return R.ok();
+    }
+
+    private ComElderAuthRecordsDO updateElderAuthRecordsDO(ComElderAuthRecordImportExcelVO vo
+            , ComElderAuthRecordsDO comElderAuthRecordsDO, Long userId, Long communityId,Date date) {
+        BeanUtils.copyProperties(vo, comElderAuthRecordsDO);
+        comElderAuthRecordsDO.setSubmitUserId(userId);
+        comElderAuthRecordsDO.setApproverId(userId);
+        comElderAuthRecordsDO.setCommunityId(communityId);
+        comElderAuthRecordsDO.setApprovalStatus(ComElderAuthRecordsDO.approvalStatus.tg);
+        comElderAuthRecordsDO.setApprovalDate(date);
+        comElderAuthRecordsDO.setAuthStatus(ComElderAuthRecordsDO.authStatus.yrz);
+        comElderAuthRecordsDO.setAuthMethod(ComElderAuthRecordsDO.authMethod.xxrz);
+        comElderAuthRecordsDO.setMark(vo.getMark());
+        return comElderAuthRecordsDO;
+    }
+
+    private ComElderAuthRecordsDO saveElderAuthRecordsDO(ComElderAuthRecordImportExcelVO vo
+            ,  ComElderAuthElderliesDO comElderAuthElderliesDO, String authPeriod, Long userId, Long communityId,Date date) {
+        ComElderAuthRecordsDO comElderAuthRecordsDO = new ComElderAuthRecordsDO();
+        BeanUtils.copyProperties(vo, comElderAuthRecordsDO);
+        comElderAuthRecordsDO.setId(Snowflake.getId());
+        comElderAuthRecordsDO.setElderliesId(comElderAuthElderliesDO.getId());
+        comElderAuthRecordsDO.setAuthPeriod(authPeriod);
+        comElderAuthRecordsDO.setSubmitUserId(userId);
+        comElderAuthRecordsDO.setApproverId(userId);
+        comElderAuthRecordsDO.setApprovalStatus(ComElderAuthRecordsDO.approvalStatus.tg);
+        comElderAuthRecordsDO.setApprovalDate(date);
+        comElderAuthRecordsDO.setAuthStatus(ComElderAuthRecordsDO.authStatus.yrz);
+        comElderAuthRecordsDO.setCommunityId(communityId);
+        comElderAuthRecordsDO.setAuthMethod(ComElderAuthRecordsDO.authMethod.xxrz);
+        comElderAuthRecordsDO.setMark(vo.getMark());
+        comElderAuthRecordsDO.setCreateAt(date);
+        return comElderAuthRecordsDO;
+    }
+
+    /**
+     * 判重方法
+     *
+     * @param key
+     *            主键
+     * @param hashMap
+     *            数据集
+     * @return 存在即为false 不存在则为true
+     */
+    private boolean isOnly(String key, HashMap<String, Object> hashMap) {
+        return ObjectUtils.isEmpty(hashMap.get(key));
+    }
+
+    /**
+     * 新增高龄认证
+     * @param addIdentityAuthDTO 请求参数
+     * @return 新增结果
+     */
+    @Override
+    public R addElderAuth(AddIdentityAuthDTO addIdentityAuthDTO) {
+        String idCard;
+        try {
+            idCard = AESUtil.encrypt128(addIdentityAuthDTO.getIdCard(), aesKey);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("加密失败【{}】", e.getMessage());
+            return R.fail("认证失败,请重新尝试");
+        }
+        ComElderAuthElderliesDO comElderAuthElderliesDO = comElderAuthElderliesDAO.selectOne(new QueryWrapper<ComElderAuthElderliesDO>()
+                .lambda().eq(ComElderAuthElderliesDO::getIdCard, idCard).eq(ComElderAuthElderliesDO::getCommunityId, addIdentityAuthDTO.getCommunityId()));
+        if (Objects.isNull(comElderAuthElderliesDO)) {
+            return R.fail("该人员未在社区报道无法认证");
+        }
+        boolean isInfoCorrect = !comElderAuthElderliesDO.getName().equals(addIdentityAuthDTO.getName()) ||
+                !(comElderAuthElderliesDO.getIsRegister().equals(1) && comElderAuthElderliesDO.getIsAlive().equals(1));
+        if (isInfoCorrect) {
+            return R.fail("信息有误,请检查!");
+        }
+        Date dateNow = new Date();
+        String currentAuthPeriod = new SimpleDateFormat("yyyyMM").format(dateNow);
+        List<ComElderAuthRecordsDO> currentAuthPeriodRecords = comElderAuthRecordsDAO
+                .selectList(new QueryWrapper<ComElderAuthRecordsDO>().lambda()
+                        .eq(ComElderAuthRecordsDO::getAuthPeriod, currentAuthPeriod)
+                        .eq(ComElderAuthRecordsDO::getElderliesId, comElderAuthElderliesDO.getId()));
+        if (!currentAuthPeriodRecords.isEmpty()) {
+            boolean alreadyAuth = currentAuthPeriodRecords.stream()
+                    .filter(record -> record.getAuthStatus().equals(CERTIFIED.getStatus())).findFirst().isPresent();
+            if (alreadyAuth) {
+                return R.fail(String.format("该人员%s期已认证无需重复认证", currentAuthPeriod));
+            }
+            boolean isPendingReview = currentAuthPeriodRecords.stream()
+                    .filter(record -> record.getApprovalStatus().intValue() == PENDING_REVIEW.getStatus()).findFirst().isPresent();
+            if (isPendingReview) {
+                return R.fail("该人员本期有尚未审核的认证,请稍后再试!");
+            }
+        }
+        ComElderAuthRecordsDO comElderAuthRecordsDO = new ComElderAuthRecordsDO();
+        BeanUtils.copyProperties(addIdentityAuthDTO, comElderAuthRecordsDO);
+        comElderAuthRecordsDO.setElderliesId(comElderAuthElderliesDO.getId());
+        comElderAuthRecordsDO.setAuthDate(dateNow);
+        comElderAuthRecordsDO.setAuthPeriod(currentAuthPeriod);
+        if (addIdentityAuthDTO.getAuthMethod().intValue() == FACE_AUTH.getMethod()) {
+            comElderAuthRecordsDO.setApprovalStatus(PASS_THROUGH.getStatus());
+            comElderAuthRecordsDO.setApprovalDate(dateNow);
+            comElderAuthRecordsDO.setAuthStatus(CERTIFIED.getStatus());
+        }
+        if (this.baseMapper.insert(comElderAuthRecordsDO) < 0) {
+            return R.fail("认证失败,请重新尝试");
+        }
+        return R.ok();
+    }
+
+    /**
+     * 分页查询高龄认证记录
+     * @param pageIdentityAuthRecordDTO 高龄认证记录vo
+     * @return 高龄认证记录列表
+     */
+    @Override
+    public R queryRecordWithPage(PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO) {
+        return R.ok(comElderAuthRecordsDAO.queryRecordWithPage(new Page(pageIdentityAuthRecordDTO.getPageNum(),
+                pageIdentityAuthRecordDTO.getPageSize()), pageIdentityAuthRecordDTO));
+    }
+
+    /**
+     * 获取高龄认证详情
+     * @param identityAuthId 认证id
+     * @return 认证记录详情
+     */
+    @Override
+    public R retrieveElderAuthDetail(Long identityAuthId) {
+        return R.ok(comElderAuthRecordsDAO.findById(identityAuthId));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEldersAuthElderlyServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEldersAuthElderlyServiceImpl.java
index 01cfc59..37f987b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEldersAuthElderlyServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEldersAuthElderlyServiceImpl.java
@@ -92,7 +92,7 @@
                 lastestOne.setIdCard(null);
                 lastestOne.setDomicile(eldersAuthService.queryDomicile(e.getIdCard()));
                 lastestOne.setIsExist(Objects.equals("是", e.getIsExist()) ? 1 : 2);
-                lastestOne.setIsBigAge(Objects.equals("是", e.getIsExist()) ? 1 : 2);
+                lastestOne.setIsBigAge(Objects.equals("是", e.getIsBigAge()) ? 1 : 2);
                 lastestOne.setUpdateAt(new Date());
                 listUpdateDO.add(lastestOne);
             } else {
@@ -103,7 +103,7 @@
                 comEldersAuthElderlyDO.setCreateBy(createBy);
                 comEldersAuthElderlyDO.setDomicile(eldersAuthService.queryDomicile(e.getIdCard()));
                 comEldersAuthElderlyDO.setIsExist(Objects.equals("是", e.getIsExist()) ? 1 : 2);
-                comEldersAuthElderlyDO.setIsBigAge(Objects.equals("是", e.getIsExist()) ? 1 : 2);
+                comEldersAuthElderlyDO.setIsBigAge(Objects.equals("是", e.getIsBigAge()) ? 1 : 2);
                 comEldersAuthElderlyDO.setBirthday(e.getBirthday());
                 comEldersAuthElderlyDO.setLevel(e.getLevel());
                 listNewDO.add(comEldersAuthElderlyDO);
@@ -145,15 +145,23 @@
     @Override
     public R updateEldersAuthElderly(EldersAuthElderlyDTO eldersAuthElderlyDTO) {
         ComEldersAuthElderlyDO comEldersAuthElderlyDO = this.baseMapper.selectById(eldersAuthElderlyDTO.getId());
+        if(comEldersAuthElderlyDO == null){
+            return R.fail("未查询到该老人信息");
+        }
         if (!ObjectUtils.isEmpty(eldersAuthElderlyDTO.getName())) {
             comEldersAuthElderlyDO.setName(eldersAuthElderlyDTO.getName());
         }
-        if (eldersAuthElderlyDTO.getIsExist() != null && eldersAuthElderlyDTO.getIsExist().intValue() != 1
-            && eldersAuthElderlyDTO.getIsExist() != 2) {
-            return R.fail("参数错误,是否健在只能为1或2");
-        }
         comEldersAuthElderlyDO.setIsExist(eldersAuthElderlyDTO.getIsExist());
         comEldersAuthElderlyDO.setIsBigAge(eldersAuthElderlyDTO.getIsBigAge());
+        comEldersAuthElderlyDO.setIdCard(eldersAuthElderlyDTO.getIdCard());
+//        if (!ObjectUtils.isEmpty(eldersAuthElderlyDTO.getIdCard())) {
+//            try {
+//                String idCard = AESUtil.encrypt128(eldersAuthElderlyDTO.getIdCard(), aesKey);
+//                comEldersAuthElderlyDO.setIdCard(idCard);
+//            } catch (Exception exp) {
+//                log.error("身份证转义失败");
+//            }
+//        }
         baseMapper.updateEldersAuthElderly(comEldersAuthElderlyDO);
         return R.ok();
     }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
index 7bd7276..e7cb7f3 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -7,8 +7,11 @@
 
 import javax.annotation.Resource;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -61,6 +64,7 @@
 
 import cn.hutool.core.util.IdcardUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RequestParam;
 
 /**
  * 实有人口Service实现类
@@ -118,6 +122,14 @@
     private ComDisabilityPopulationDAO comDisabilityPopulationDAO;
     @Resource
     private ComLowSecurityPopulationDAO comLowSecurityPopulationDAO;
+    @Resource
+    private ComElderAuthElderliesDAO comElderAuthElderliesDAO;
+    @Resource
+    private ComPensionAuthPensionerDAO comPensionAuthPensionerDAO;
+    @Resource
+    private ComEldersAuthStatisticsMapper comEldersAuthStatisticsMapper;
+    @Resource
+    private ComPensionAuthStatisticsDAO comPensionAuthStatisticsDAO;
     @Value("${domain.aesKey:}")
     private String aesKey;
 
@@ -188,7 +200,7 @@
      * @return 实有人口详情
      */
     @Override
-    public R detailPopulation(Long populationId) {
+    public R detailPopulation(Long populationId, Long communityId) {
         ComMngPopulationDO comMngPopulationDO = populationDAO.selectById(populationId);
         if (ObjectUtils.isEmpty(comMngPopulationDO)) {
             return R.fail("用户信息不存在");
@@ -229,7 +241,8 @@
         // 设置特殊群体标签
         ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
             comMngPopulationCommunityTagsDAO.selectOne(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda()
-                .eq(ComMngPopulationCommunityTagsDO::getPopulationId, populationId));
+                    .eq(ComMngPopulationCommunityTagsDO::getPopulationId, populationId)
+                    .eq(ComMngPopulationCommunityTagsDO::getCommunityId, communityId));
         if (null != comMngPopulationCommunityTagsDO) {
             comMngPopulationVO.setLabel(comMngPopulationCommunityTagsDO.getLabel());
         }
@@ -264,126 +277,167 @@
             comMngPopulationVO.setCarList(carList);
         }
 
-        // 吸毒信息
-        List<ComDrugPopulationVO> comDrugPopulationVOs = new ArrayList<>();
-        List<ComDrugPopulationDO> comDrugPopulationDOs = comDrugPopulationDAO.selectList(
-            new QueryWrapper<ComDrugPopulationDO>().lambda().eq(ComDrugPopulationDO::getPopulationId, populationId));
-        if (!comDrugPopulationDOs.isEmpty()) {
-            comDrugPopulationDOs.forEach(comDrugPopulationDO -> {
-                ComDrugPopulationVO comDrugPopulationVO = new ComDrugPopulationVO();
-                BeanUtils.copyProperties(comDrugPopulationDO, comDrugPopulationVO);
-                comDrugPopulationVOs.add(comDrugPopulationVO);
-                comMngPopulationVO.setComDrugPopulationVOs(comDrugPopulationVOs);
-            });
-        }
+        if (communityId != null){
+            // 吸毒信息
+            List<ComDrugPopulationVO> comDrugPopulationVOs = new ArrayList<>();
+            List<ComDrugPopulationDO> comDrugPopulationDOs = comDrugPopulationDAO.selectList(
+                    new QueryWrapper<ComDrugPopulationDO>().lambda().eq(ComDrugPopulationDO::getPopulationId, populationId)
+                            .eq(ComDrugPopulationDO::getCommunityId, communityId));
+            if (!comDrugPopulationDOs.isEmpty()) {
+                comDrugPopulationDOs.forEach(comDrugPopulationDO -> {
+                    ComDrugPopulationVO comDrugPopulationVO = new ComDrugPopulationVO();
+                    BeanUtils.copyProperties(comDrugPopulationDO, comDrugPopulationVO);
+                    comDrugPopulationVOs.add(comDrugPopulationVO);
+                    comMngPopulationVO.setComDrugPopulationVOs(comDrugPopulationVOs);
+                });
+            }
 
-        // 社区矫正信息
-        List<ComCorrectPopulationVO> comCorrectPopulationVOS = new ArrayList<>();
-        List<ComCorrectPopulationDO> comCorrectPopulationDOS =
-            comCorrectPopulationDAO.selectList(new QueryWrapper<ComCorrectPopulationDO>().lambda()
-                .eq(ComCorrectPopulationDO::getPopulationId, populationId));
-        if (!comCorrectPopulationDOS.isEmpty()) {
-            comCorrectPopulationDOS.forEach(comCorrectPopulationDO -> {
-                ComCorrectPopulationVO comCorrectPopulationVO = new ComCorrectPopulationVO();
-                BeanUtils.copyProperties(comCorrectPopulationDO, comCorrectPopulationVO);
-                comCorrectPopulationVOS.add(comCorrectPopulationVO);
-                comMngPopulationVO.setComCorrectPopulationVOs(comCorrectPopulationVOS);
-            });
-        }
+            // 社区矫正信息
+            List<ComCorrectPopulationVO> comCorrectPopulationVOS = new ArrayList<>();
+            List<ComCorrectPopulationDO> comCorrectPopulationDOS =
+                    comCorrectPopulationDAO.selectList(new QueryWrapper<ComCorrectPopulationDO>().lambda()
+                            .eq(ComCorrectPopulationDO::getPopulationId, populationId)
+                            .eq(ComCorrectPopulationDO::getCommunityId, communityId));
+            if (!comCorrectPopulationDOS.isEmpty()) {
+                comCorrectPopulationDOS.forEach(comCorrectPopulationDO -> {
+                    ComCorrectPopulationVO comCorrectPopulationVO = new ComCorrectPopulationVO();
+                    BeanUtils.copyProperties(comCorrectPopulationDO, comCorrectPopulationVO);
+                    comCorrectPopulationVOS.add(comCorrectPopulationVO);
+                    comMngPopulationVO.setComCorrectPopulationVOs(comCorrectPopulationVOS);
+                });
+            }
 
-        // 精神障碍信息
-        List<ComMajorPopulationVO> comMajorPopulationVOS = new ArrayList<>();
-        List<ComMajorPopulationDO> comMajorPopulationDOs = comMajorPopulationDAO.selectList(
-            new QueryWrapper<ComMajorPopulationDO>().lambda().eq(ComMajorPopulationDO::getPopulationId, populationId));
-        if (!comMajorPopulationDOs.isEmpty()) {
-            comMajorPopulationDOs.forEach(comMajorPopulationDO -> {
-                ComMajorPopulationVO comMajorPopulationVO = new ComMajorPopulationVO();
-                BeanUtils.copyProperties(comMajorPopulationDO, comMajorPopulationVO);
-                comMajorPopulationVOS.add(comMajorPopulationVO);
-                comMngPopulationVO.setComMajorPopulationVOs(comMajorPopulationVOS);
-            });
-        }
+            // 精神障碍信息
+            List<ComMajorPopulationVO> comMajorPopulationVOS = new ArrayList<>();
+            List<ComMajorPopulationDO> comMajorPopulationDOs = comMajorPopulationDAO.selectList(
+                    new QueryWrapper<ComMajorPopulationDO>().lambda().eq(ComMajorPopulationDO::getPopulationId, populationId)
+                            .eq(ComMajorPopulationDO::getCommunityId, communityId));
+            if (!comMajorPopulationDOs.isEmpty()) {
+                comMajorPopulationDOs.forEach(comMajorPopulationDO -> {
+                    ComMajorPopulationVO comMajorPopulationVO = new ComMajorPopulationVO();
+                    BeanUtils.copyProperties(comMajorPopulationDO, comMajorPopulationVO);
+                    comMajorPopulationVOS.add(comMajorPopulationVO);
+                    comMngPopulationVO.setComMajorPopulationVOs(comMajorPopulationVOS);
+                });
+            }
 
-        // 邪教信息
-        List<ComCultPopulationVO> comCultPopulationVOS = new ArrayList<>();
-        List<ComCultPopulationDO> comCultPopulationDOS = comCultPopulationDAO.selectList(
-            new QueryWrapper<ComCultPopulationDO>().lambda().eq(ComCultPopulationDO::getPopulationId, populationId));
-        if (!comCultPopulationDOS.isEmpty()) {
-            comCultPopulationDOS.forEach(comCultPopulationDO -> {
-                ComCultPopulationVO comCultPopulationVO = new ComCultPopulationVO();
-                BeanUtils.copyProperties(comCultPopulationDO, comCultPopulationVO);
-                comCultPopulationVOS.add(comCultPopulationVO);
-                comMngPopulationVO.setComCultPopulationVOs(comCultPopulationVOS);
-            });
-        }
+            // 邪教信息
+            List<ComCultPopulationVO> comCultPopulationVOS = new ArrayList<>();
+            List<ComCultPopulationDO> comCultPopulationDOS = comCultPopulationDAO.selectList(
+                    new QueryWrapper<ComCultPopulationDO>().lambda().eq(ComCultPopulationDO::getPopulationId, populationId)
+                            .eq(ComCultPopulationDO::getCommunityId, communityId));
+            if (!comCultPopulationDOS.isEmpty()) {
+                comCultPopulationDOS.forEach(comCultPopulationDO -> {
+                    ComCultPopulationVO comCultPopulationVO = new ComCultPopulationVO();
+                    BeanUtils.copyProperties(comCultPopulationDO, comCultPopulationVO);
+                    comCultPopulationVOS.add(comCultPopulationVO);
+                    comMngPopulationVO.setComCultPopulationVOs(comCultPopulationVOS);
+                });
+            }
 
-        // 刑释信息
-        List<ComRehabilitationPopulationVO> comRehabilitationPopulationVOS = new ArrayList<>();
-        List<ComRehabilitationPopulationDO> comRehabilitationPopulationDOS =
-            comRehabilitationPopulationDAO.selectList(new QueryWrapper<ComRehabilitationPopulationDO>().lambda()
-                .eq(ComRehabilitationPopulationDO::getPopulationId, populationId));
-        if (!comRehabilitationPopulationDOS.isEmpty()) {
-            comRehabilitationPopulationDOS.forEach(comRehabilitationPopulationDO -> {
-                ComRehabilitationPopulationVO comRehabilitationPopulationVO = new ComRehabilitationPopulationVO();
-                BeanUtils.copyProperties(comRehabilitationPopulationDO, comRehabilitationPopulationVO);
-                comRehabilitationPopulationVOS.add(comRehabilitationPopulationVO);
-                comMngPopulationVO.setComRehabilitationPopulationVOs(comRehabilitationPopulationVOS);
-            });
-        }
+            // 刑释信息
+            List<ComRehabilitationPopulationVO> comRehabilitationPopulationVOS = new ArrayList<>();
+            List<ComRehabilitationPopulationDO> comRehabilitationPopulationDOS =
+                    comRehabilitationPopulationDAO.selectList(new QueryWrapper<ComRehabilitationPopulationDO>().lambda()
+                            .eq(ComRehabilitationPopulationDO::getPopulationId, populationId)
+                            .eq(ComRehabilitationPopulationDO::getCommunityId, communityId));
+            if (!comRehabilitationPopulationDOS.isEmpty()) {
+                comRehabilitationPopulationDOS.forEach(comRehabilitationPopulationDO -> {
+                    ComRehabilitationPopulationVO comRehabilitationPopulationVO = new ComRehabilitationPopulationVO();
+                    BeanUtils.copyProperties(comRehabilitationPopulationDO, comRehabilitationPopulationVO);
+                    comRehabilitationPopulationVOS.add(comRehabilitationPopulationVO);
+                    comMngPopulationVO.setComRehabilitationPopulationVOs(comRehabilitationPopulationVOS);
+                });
+            }
 
-        // 上访信息
-        List<ComKeyPopulationVO> comKeyPopulationVOS = new ArrayList<>();
-        List<ComKeyPopulationDO> comKeyPopulationDOS = comKeyPopulationDAO.selectList(
-            new QueryWrapper<ComKeyPopulationDO>().lambda().eq(ComKeyPopulationDO::getPopulationId, populationId));
-        if (!comKeyPopulationDOS.isEmpty()) {
-            comKeyPopulationDOS.forEach(comKeyPopulationDO -> {
-                ComKeyPopulationVO comKeyPopulationVO = new ComKeyPopulationVO();
-                BeanUtils.copyProperties(comKeyPopulationDO, comKeyPopulationVO);
-                comKeyPopulationVOS.add(comKeyPopulationVO);
-                comMngPopulationVO.setComKeyPopulationVOs(comKeyPopulationVOS);
-            });
-        }
+            // 上访信息
+            List<ComKeyPopulationVO> comKeyPopulationVOS = new ArrayList<>();
+            List<ComKeyPopulationDO> comKeyPopulationDOS = comKeyPopulationDAO.selectList(
+                    new QueryWrapper<ComKeyPopulationDO>().lambda().eq(ComKeyPopulationDO::getPopulationId, populationId)
+                            .eq(ComKeyPopulationDO::getCommunityId, communityId));
+            if (!comKeyPopulationDOS.isEmpty()) {
+                comKeyPopulationDOS.forEach(comKeyPopulationDO -> {
+                    ComKeyPopulationVO comKeyPopulationVO = new ComKeyPopulationVO();
+                    BeanUtils.copyProperties(comKeyPopulationDO, comKeyPopulationVO);
+                    comKeyPopulationVOS.add(comKeyPopulationVO);
+                    comMngPopulationVO.setComKeyPopulationVOs(comKeyPopulationVOS);
+                });
+            }
 
-        // 退役军人信息
-        List<ComVeteransPopulationVO> comVeteransPopulationVOS = new ArrayList<>();
-        List<ComVeteransPopulationDO> comVeteransPopulationDOS =
-            comVeteransPopulationDAO.selectList(new QueryWrapper<ComVeteransPopulationDO>().lambda()
-                .eq(ComVeteransPopulationDO::getPopulationId, populationId));
-        if (!comVeteransPopulationDOS.isEmpty()) {
-            comVeteransPopulationDOS.forEach(comVeteransPopulationDO -> {
-                ComVeteransPopulationVO comVeteransPopulationVO = new ComVeteransPopulationVO();
-                BeanUtils.copyProperties(comVeteransPopulationDO, comVeteransPopulationVO);
-                comVeteransPopulationVOS.add(comVeteransPopulationVO);
-                comMngPopulationVO.setComVeteransPopulationVOs(comVeteransPopulationVOS);
-            });
-        }
+            // 退役军人信息
+            List<ComVeteransPopulationVO> comVeteransPopulationVOS = new ArrayList<>();
+            List<ComVeteransPopulationDO> comVeteransPopulationDOS =
+                    comVeteransPopulationDAO.selectList(new QueryWrapper<ComVeteransPopulationDO>().lambda()
+                            .eq(ComVeteransPopulationDO::getPopulationId, populationId)
+                            .eq(ComVeteransPopulationDO::getCommunityId, communityId));
+            if (!comVeteransPopulationDOS.isEmpty()) {
+                comVeteransPopulationDOS.forEach(comVeteransPopulationDO -> {
+                    ComVeteransPopulationVO comVeteransPopulationVO = new ComVeteransPopulationVO();
+                    BeanUtils.copyProperties(comVeteransPopulationDO, comVeteransPopulationVO);
+                    comVeteransPopulationVOS.add(comVeteransPopulationVO);
+                    comMngPopulationVO.setComVeteransPopulationVOs(comVeteransPopulationVOS);
+                });
+            }
 
-        // 残疾人信息
-        List<ComDisabilityPopulationVO> comDisabilityPopulationVOS = new ArrayList<>();
-        List<ComDisabilityPopulationDO> comDisabilityPopulationDOS =
-            comDisabilityPopulationDAO.selectList(new QueryWrapper<ComDisabilityPopulationDO>().lambda()
-                .eq(ComDisabilityPopulationDO::getPopulationId, populationId));
-        if (!comDisabilityPopulationDOS.isEmpty()) {
-            comDisabilityPopulationDOS.forEach(comDisabilityPopulationDO -> {
-                ComDisabilityPopulationVO comDisabilityPopulationVO = new ComDisabilityPopulationVO();
-                BeanUtils.copyProperties(comDisabilityPopulationDO, comDisabilityPopulationVO);
-                comDisabilityPopulationVOS.add(comDisabilityPopulationVO);
-                comMngPopulationVO.setComDisabilityPopulationVOs(comDisabilityPopulationVOS);
-            });
-        }
+            // 残疾人信息
+            List<ComDisabilityPopulationVO> comDisabilityPopulationVOS = new ArrayList<>();
+            List<ComDisabilityPopulationDO> comDisabilityPopulationDOS =
+                    comDisabilityPopulationDAO.selectList(new QueryWrapper<ComDisabilityPopulationDO>().lambda()
+                            .eq(ComDisabilityPopulationDO::getPopulationId, populationId)
+                            .eq(ComDisabilityPopulationDO::getCommunityId, communityId));
+            if (!comDisabilityPopulationDOS.isEmpty()) {
+                comDisabilityPopulationDOS.forEach(comDisabilityPopulationDO -> {
+                    ComDisabilityPopulationVO comDisabilityPopulationVO = new ComDisabilityPopulationVO();
+                    BeanUtils.copyProperties(comDisabilityPopulationDO, comDisabilityPopulationVO);
+                    comDisabilityPopulationVOS.add(comDisabilityPopulationVO);
+                    comMngPopulationVO.setComDisabilityPopulationVOs(comDisabilityPopulationVOS);
+                });
+            }
 
-        // 低保户信息
-        List<ComLowSecurityPopulationVO> comLowSecurityPopulationVOS = new ArrayList<>();
-        List<ComLowSecurityPopulationDO> comLowSecurityPopulationDOS =
-            comLowSecurityPopulationDAO.selectList(new QueryWrapper<ComLowSecurityPopulationDO>().lambda()
-                .eq(ComLowSecurityPopulationDO::getPopulationId, populationId));
-        if (!comLowSecurityPopulationDOS.isEmpty()) {
-            comLowSecurityPopulationDOS.forEach(comLowSecurityPopulationDO -> {
-                ComLowSecurityPopulationVO comLowSecurityPopulationVO = new ComLowSecurityPopulationVO();
-                BeanUtils.copyProperties(comLowSecurityPopulationDO, comLowSecurityPopulationVO);
-                comLowSecurityPopulationVOS.add(comLowSecurityPopulationVO);
-                comMngPopulationVO.setComLowSecurityPopulationVOs(comLowSecurityPopulationVOS);
-            });
+            // 低保户信息
+            List<ComLowSecurityPopulationVO> comLowSecurityPopulationVOS = new ArrayList<>();
+            List<ComLowSecurityPopulationDO> comLowSecurityPopulationDOS =
+                    comLowSecurityPopulationDAO.selectList(new QueryWrapper<ComLowSecurityPopulationDO>().lambda()
+                            .eq(ComLowSecurityPopulationDO::getPopulationId, populationId)
+                            .eq(ComLowSecurityPopulationDO::getCommunityId, communityId));
+            if (!comLowSecurityPopulationDOS.isEmpty()) {
+                comLowSecurityPopulationDOS.forEach(comLowSecurityPopulationDO -> {
+                    ComLowSecurityPopulationVO comLowSecurityPopulationVO = new ComLowSecurityPopulationVO();
+                    BeanUtils.copyProperties(comLowSecurityPopulationDO, comLowSecurityPopulationVO);
+                    comLowSecurityPopulationVOS.add(comLowSecurityPopulationVO);
+                    comMngPopulationVO.setComLowSecurityPopulationVOs(comLowSecurityPopulationVOS);
+                });
+            }
+
+            // 高龄老人信息
+            List<ComElderAuthElderliesVO> comElderAuthElderliesVOList = new ArrayList<>();
+            List<ComElderAuthElderliesDO> comElderAuthElderliesDOS =
+                    comElderAuthElderliesDAO.selectList(new QueryWrapper<ComElderAuthElderliesDO>().lambda()
+                            .eq(ComElderAuthElderliesDO::getPopulationId, populationId)
+                            .eq(ComElderAuthElderliesDO::getCommunityId, communityId));
+            if (!comElderAuthElderliesDOS.isEmpty()) {
+                comElderAuthElderliesDOS.forEach(comElderAuthElderliesDO -> {
+                    ComElderAuthElderliesVO comElderAuthElderliesVO = new ComElderAuthElderliesVO();
+                    BeanUtils.copyProperties(comElderAuthElderliesDO, comElderAuthElderliesVO);
+                    comElderAuthElderliesVOList.add(comElderAuthElderliesVO);
+                    comMngPopulationVO.setComElderAuthElderliesVOList(comElderAuthElderliesVOList);
+                });
+            }
+
+            // 养老人员信息
+            List<ComPensionAuthPensionerVO> comPensionAuthPensionerVOList = new ArrayList<>();
+            List<ComPensionAuthPensionerDO> comPensionAuthPensionerDOS =
+                    comPensionAuthPensionerDAO.selectList(new QueryWrapper<ComPensionAuthPensionerDO>().lambda()
+                            .eq(ComPensionAuthPensionerDO::getPopulationId, populationId)
+                            .eq(ComPensionAuthPensionerDO::getCommunityId, communityId));
+            if (!comPensionAuthPensionerDOS.isEmpty()) {
+                comPensionAuthPensionerDOS.forEach(comPensionAuthPensionerDO -> {
+                    ComPensionAuthPensionerVO comPensionAuthPensionerVO = new ComPensionAuthPensionerVO();
+                    BeanUtils.copyProperties(comPensionAuthPensionerDO, comPensionAuthPensionerVO);
+                    comPensionAuthPensionerVOList.add(comPensionAuthPensionerVO);
+                    comMngPopulationVO.setComPensionAuthPensionerVOList(comPensionAuthPensionerVOList);
+                });
+            }
         }
         return R.ok(comMngPopulationVO);
     }
@@ -560,7 +614,7 @@
             // 查询当前社区标签列表
             List<String> labelList = new ArrayList<>();
             List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
-                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
+                .selectList(null);
             if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                 labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                     .collect(Collectors.toList());
@@ -748,8 +802,8 @@
                             if (!labelList.contains(s))
                                 iterator.remove();
                         }
-                        populationDO.setLabel(Joiner.on(",").join(userTag));
-                        populationDO.setCreateBy(userId);
+                        cpopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        cpopulationCommunityTagsDO.setCreateBy(userId);
                         savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                     }else {
                         // 实有人口存在于当前社区,则更新
@@ -854,7 +908,7 @@
             // 查询当前社区标签列表
             List<String> labelList = new ArrayList<>();
             List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
-                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
+                .selectList(null);
             if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                 labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                     .collect(Collectors.toList());
@@ -1043,8 +1097,8 @@
                             if (!labelList.contains(s))
                                 iterator.remove();
                         }
-                        populationDO.setLabel(Joiner.on(",").join(userTag));
-                        populationDO.setCreateBy(userId);
+                        cpopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        cpopulationCommunityTagsDO.setCreateBy(userId);
                         savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                     }else {
                         // 实有人口存在于当前社区,则更新
@@ -1149,7 +1203,7 @@
             // 查询当前社区标签列表
             List<String> labelList = new ArrayList<>();
             List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
-                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
+                .selectList(null);
             if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                 labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                     .collect(Collectors.toList());
@@ -1338,8 +1392,8 @@
                             if (!labelList.contains(s))
                                 iterator.remove();
                         }
-                        populationDO.setLabel(Joiner.on(",").join(userTag));
-                        populationDO.setCreateBy(userId);
+                        cpopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        cpopulationCommunityTagsDO.setCreateBy(userId);
                         savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                     }else {
                         // 实有人口存在于当前社区,则更新
@@ -1444,7 +1498,7 @@
             // 查询当前社区标签列表
             List<String> labelList = new ArrayList<>();
             List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
-                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
+                .selectList(null);
             if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                 labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                     .collect(Collectors.toList());
@@ -1633,8 +1687,8 @@
                             if (!labelList.contains(s))
                                 iterator.remove();
                         }
-                        populationDO.setLabel(Joiner.on(",").join(userTag));
-                        populationDO.setCreateBy(userId);
+                        cpopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        cpopulationCommunityTagsDO.setCreateBy(userId);
                         savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                     }else {
                         // 实有人口存在于当前社区,则更新
@@ -1739,7 +1793,7 @@
             // 查询当前社区标签列表
             List<String> labelList = new ArrayList<>();
             List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
-                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
+                .selectList(null);
             if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                 labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                     .collect(Collectors.toList());
@@ -1928,8 +1982,8 @@
                             if (!labelList.contains(s))
                                 iterator.remove();
                         }
-                        populationDO.setLabel(Joiner.on(",").join(userTag));
-                        populationDO.setCreateBy(userId);
+                        cpopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        cpopulationCommunityTagsDO.setCreateBy(userId);
                         savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                     } else {
                         // 实有人口存在于当前社区,则更新
@@ -2035,7 +2089,7 @@
             // 查询当前社区标签列表
             List<String> labelList = new ArrayList<>();
             List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
-                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
+                .selectList(null);
             if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                 labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                     .collect(Collectors.toList());
@@ -2225,8 +2279,8 @@
                             if (!labelList.contains(s))
                                 iterator.remove();
                         }
-                        populationDO.setLabel(Joiner.on(",").join(userTag));
-                        populationDO.setCreateBy(userId);
+                        cpopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        cpopulationCommunityTagsDO.setCreateBy(userId);
                         savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                     }else {
                         // 实有人口存在于当前社区,则更新
@@ -2332,7 +2386,7 @@
             // 查询当前社区标签列表
             List<String> labelList = new ArrayList<>();
             List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
-                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
+                .selectList(null);
             if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                 labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                     .collect(Collectors.toList());
@@ -2521,8 +2575,8 @@
                             if (!labelList.contains(s))
                                 iterator.remove();
                         }
-                        populationDO.setLabel(Joiner.on(",").join(userTag));
-                        populationDO.setCreateBy(userId);
+                        cpopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        cpopulationCommunityTagsDO.setCreateBy(userId);
                         savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                     }else {
                         // 实有人口存在于当前社区,则更新
@@ -2627,7 +2681,7 @@
             // 查询当前社区标签列表
             List<String> labelList = new ArrayList<>();
             List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
-                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
+                .selectList(null);
             if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                 labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                     .collect(Collectors.toList());
@@ -2816,8 +2870,8 @@
                             if (!labelList.contains(s))
                                 iterator.remove();
                         }
-                        populationDO.setLabel(Joiner.on(",").join(userTag));
-                        populationDO.setCreateBy(userId);
+                        cpopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        cpopulationCommunityTagsDO.setCreateBy(userId);
                         savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                     } else {
                         // 实有人口存在于当前社区,则更新
@@ -2922,7 +2976,7 @@
             // 查询当前社区标签列表
             List<String> labelList = new ArrayList<>();
             List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
-                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
+                .selectList(null);
             if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                 labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                     .collect(Collectors.toList());
@@ -3111,8 +3165,8 @@
                             if (!labelList.contains(s))
                                 iterator.remove();
                         }
-                        populationDO.setLabel(Joiner.on(",").join(userTag));
-                        populationDO.setCreateBy(userId);
+                        cpopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        cpopulationCommunityTagsDO.setCreateBy(userId);
                         savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                     }else {
                         // 实有人口存在于当前社区,则更新
@@ -3217,7 +3271,7 @@
             // 查询当前社区标签列表
             List<String> labelList = new ArrayList<>();
             List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
-                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
+                .selectList(null);
             if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                 labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                     .collect(Collectors.toList());
@@ -3406,8 +3460,8 @@
                             if (!labelList.contains(s))
                                 iterator.remove();
                         }
-                        populationDO.setLabel(Joiner.on(",").join(userTag));
-                        populationDO.setCreateBy(userId);
+                        cpopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        cpopulationCommunityTagsDO.setCreateBy(userId);
                         savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                     } else {
                         // 实有人口存在于当前社区,则更新
@@ -3517,7 +3571,7 @@
             // 查询当前社区标签列表
             List<String> labelList = new ArrayList<>();
             List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
-                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
+                .selectList(null);
             if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                 labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                     .collect(Collectors.toList());
@@ -3706,8 +3760,8 @@
                             if (!labelList.contains(s))
                                 iterator.remove();
                         }
-                        populationDO.setLabel(Joiner.on(",").join(userTag));
-                        populationDO.setCreateBy(userId);
+                        cpopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        cpopulationCommunityTagsDO.setCreateBy(userId);
                         savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                     } else {
                         // 实有人口存在于当前社区,则更新
@@ -3729,6 +3783,603 @@
                         ComMngPopulationLowSecurityMistakeExcelVO mistake = new ComMngPopulationLowSecurityMistakeExcelVO();
                         BeanUtils.copyProperties(vo, mistake);
                         setLowSecurityMistake(mistake, vo);
+                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
+                        mistakes.add(mistake);
+                    }
+                }
+                log.info("查询实有人口存在社区信息完成");
+            }
+        } catch (Exception e) {
+            log.info("出现错误,错误原因:" + e.getMessage());
+        }
+        log.info("处理完成导入数据");
+
+        log.info("开始执行数据库导入");
+        if (!houseList.isEmpty()) {
+            log.info("执行数据库导入房屋");
+            comMngPopulationHouseDAO.insertAll(houseList);
+            log.info("执行数据库导入房屋完成");
+        }
+        if (!saveList.isEmpty()) {
+            log.info("执行数据库导入人口");
+            this.baseMapper.insertAll(saveList);
+            log.info("执行数据库导入人口完成");
+        }
+        if (!updateList.isEmpty()) {
+            log.info("执行数据库更新人口");
+            this.baseMapper.updateAll(updateList);
+            // this.updateBatchById(updateList);
+            log.info("执行数据库更新人口完成");
+        }
+        if (!houseUserList.isEmpty()) {
+            log.info("执行数据库导入人口房屋关系");
+            comMngPopulationHouseUserService.saveBatch(houseUserList);
+            log.info("执行数据库导入人口房屋关系完成");
+        }
+        if (!savePopulationCommunityList.isEmpty()) {
+            log.info("执行数据库导入人口社区关系");
+            comMngPopulationCommunityTagsService.saveBatch(savePopulationCommunityList);
+            log.info("数据库导入人口社区关系完成");
+        }
+        if (!updatePopulationCommunityList.isEmpty()) {
+            log.info("执行数据库更新人口社区关系");
+            comMngPopulationCommunityTagsDAO.updateAll(updatePopulationCommunityList);
+            log.info("数据库更新人口社区关系完成");
+        }
+        log.info("执行数据库导入完成");
+
+        if (!mistakes.isEmpty()) {
+            log.info("返回错误数据");
+            return R.fail(mistakes);
+        }
+        return R.ok(mistakes);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R listSaveEdlerPopulation(List<ComMngPopulationElderExcelVO> list, Long communityId, Long userId) {
+        // 需要新增的房屋集合
+        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
+        // 需要新增的人口集合
+        List<ComMngPopulationDO> saveList = new ArrayList<>();
+        // 需要修改的人口集合
+        List<ComMngPopulationDO> updateList = new ArrayList<>();
+        // 需要新增的吸毒人员集合
+        List<ComDrugPopulationDO> saveDrugList = new ArrayList<>();
+        // 需要修改的吸毒人员集合
+        List<ComDrugPopulationDO> updateDrugList = new ArrayList<>();
+        // 需要新增的人口与房屋关系集合
+        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
+
+        log.info("开始处理导入数据");
+        List<ComMngPopulationElderMistakeExcelVO> mistakes = new ArrayList<>();
+        try {
+            // 查询社区信息
+            log.info("开始查询社区信息数据");
+            ComPopulationActVO populationActVO = comActDAO.getPopulationActById(communityId);
+            if (populationActVO == null) {
+                log.error("未查询到社区信息");
+                return R.fail("未查询到社区信息");
+            }
+            log.info("开始查询社区信息数据完成");
+
+            // 查询当前社区标签列表
+            List<String> labelList = new ArrayList<>();
+            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
+                    .selectList(null);
+            if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
+                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
+                        .collect(Collectors.toList());
+            }
+
+            StringBuilder areaPath = new StringBuilder();
+            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName())
+                    .append(">").append(populationActVO.getDistrictName()).append(">");
+            // 处理实有人口信息
+            Integer nub = 1;
+
+            // 查询所有人口数据放入HashMap中
+            List<ComMngPopulationDO> populationList = this.baseMapper.selectList(null);
+            HashMap<String, Object> populationMap = new HashMap<>();
+            populationList.forEach(population -> {
+                String key = population.getCardNo();
+                populationMap.put(key, population);
+            });
+            // 查询所有房屋信息放入到HashMap中
+            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(null);
+            HashMap<String, Object> houseMap = new HashMap<>();
+            houseLists.forEach(house -> {
+                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo()
+                        + house.getHouseNo();
+                houseMap.put(key, house);
+            });
+
+            List<ComMngVillageDO> villageList = comActVillageDAO.selectList(null);
+            HashMap<String, Object> villageMap = new HashMap<>();
+            villageList.forEach(village -> {
+                String key = village.getCommunityId() + village.getAlley() + village.getHouseNum();
+                villageMap.put(key, village);
+            });
+
+            List<ComMngPopulationHouseUserDO> houseUserLists = comMngPopulationHouseUserDAO.selectList(null);
+            HashMap<String, Object> houseUserMap = new HashMap<>();
+            houseUserLists.forEach(houseUser -> {
+                String key = houseUser.getPopulId() + houseUser.getHouseId() + "";
+                houseUserMap.put(key, houseUser);
+            });
+
+            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
+                    comMngPopulationCommunityTagsDAO.selectList(null);
+            HashMap<String, Object> populationCommunityMap = new HashMap<>();
+            populationCommunityLists.forEach(populationCommunity -> {
+                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
+                populationCommunityMap.put(key, populationCommunity);
+            });
+
+            for (ComMngPopulationElderExcelVO vo : list) {
+                if (vo.getDoorNo().contains("号")) {
+                    vo.setDoorNo(vo.getDoorNo().replace("号", ""));
+                }
+                if (StringUtils.isNotEmpty(vo.getFloor())) {
+                    if (vo.getFloor().contains("栋")) {
+                        vo.setFloor(vo.getFloor().replace("栋", ""));
+                    }
+                }
+                if (StringUtils.isNotEmpty(vo.getUnitNo())) {
+                    if (vo.getUnitNo().contains("单元")) {
+                        vo.setUnitNo(vo.getUnitNo().replace("单元", ""));
+                    }
+                }
+                if (StringUtils.isNotEmpty(vo.getHouseNo())) {
+                    if (vo.getHouseNo().contains("号")) {
+                        vo.setHouseNo(vo.getHouseNo().replace("号", ""));
+                    }
+                }
+                log.info("开始查询小区街路巷是否存在");
+                // 查询小区街路巷是否存在
+                ComMngVillageDO comMngVillageDO = null;
+                String villageKey = communityId + vo.getRoad() + vo.getDoorNo();
+                if (!isOnly(villageKey, villageMap)) {
+                    comMngVillageDO = (ComMngVillageDO)villageMap.get(villageKey);
+                } else {
+                    ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setElderMistake(mistake, vo);
+                    mistake.setMistake("街路巷或小区号不存在,请先在“小区管理”中添加该小区:街路巷:" + vo.getRoad() + ",小区号:" + vo.getDoorNo());
+                    mistakes.add(mistake);
+                    log.info("未查询到街路巷:" + vo.getRoad() + ",小区号:" + vo.getDoorNo());
+                    continue;
+                }
+                StringBuilder address = new StringBuilder();
+                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
+                        .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
+                        .append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
+                if (StringUtils.isNotEmpty(vo.getFloor())) {
+                    address.append(vo.getFloor()).append("栋");
+                }
+                if (StringUtils.isNotEmpty(vo.getUnitNo())) {
+                    address.append(vo.getUnitNo()).append("单元");
+                }
+                if (StringUtils.isNotEmpty(vo.getHouseNo())) {
+                    address.append(vo.getHouseNo()).append("号");
+                }
+                vo.setAddress(address.toString());
+                log.info("开始查询小区街路巷是否存在完成");
+
+                log.info("开始查询房屋是否存在");
+                // 先判断房屋是否存在
+                ComMngPopulationHouseDO populationHouseDO = null;
+                String houseKey =
+                        communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
+                if (isOnly(houseKey, houseMap)) {
+                    if (!houseList.isEmpty()) {
+                        for (ComMngPopulationHouseDO house : houseList) {
+                            if (house.getVillageId().equals(comMngVillageDO.getVillageId())
+                                    && house.getCommunityId().equals(communityId) && house.getFloor().equals(vo.getFloor())
+                                    && house.getUnitNo().equals(vo.getUnitNo())
+                                    && house.getHouseNo().equals(vo.getHouseNo())) {
+                                populationHouseDO = house;
+                                break;
+                            }
+                        }
+                    }
+                    if (populationHouseDO == null) {
+                        // 房屋信息不存在建立房屋信息
+                        populationHouseDO = saveElderPopulationHouse(vo, comMngVillageDO, communityId, areaPath,
+                                populationActVO.getName());
+                        houseList.add(populationHouseDO);
+                    }
+                } else {
+                    populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
+                }
+                vo.setHouseId(populationHouseDO.getId());
+                log.info("开始查询房屋是否存在完成");
+
+                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
+                    // 空户处理完房屋信息,直接返回
+                    continue;
+                }
+                String cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
+                // 判断实有人口是否已存在
+                log.info("开始查询实有人口是否已存在");
+                ComMngPopulationDO populationDO = null;
+                String populationKey = vo.getCardNo();
+                if (!isOnly(populationKey, populationMap)) {
+                    // 存在实有人口信息,则更新
+                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
+                    ComMngPopulationDO updatePopulationDO =
+                            updateElderPopulationDO(vo, populationDO, communityId, userId);
+                    updateList.add(updatePopulationDO);
+                } else {
+                    // 不存在实有人口,则新增
+                    populationDO = saveElderPopulationDO(vo, populationActVO, comMngVillageDO, userId,communityId);
+                    saveList.add(populationDO);
+                }
+                log.info("开始查询实有人口是否已存在完成");
+
+                log.info("开始查询实有人口房屋居住信息");
+                // 处理实有人口房屋居住信息
+                if (populationDO != null) {
+                    ComMngPopulationHouseUserDO populationHouseUserDO = null;
+                    String houseUserKey = populationDO.getId() + populationHouseDO.getId() + "";
+                    if (isOnly(houseUserKey, houseUserMap)) {
+                        populationHouseUserDO = new ComMngPopulationHouseUserDO();
+                        populationHouseUserDO.setId(Snowflake.getId());
+                        populationHouseUserDO.setHouseId(populationHouseDO.getId());
+                        populationHouseUserDO.setPopulId(populationDO.getId());
+                        // populationHouseUserDO.setRelation(vo.getRelation());
+                        populationHouseUserDO.setRelationId(vo.getIsRent());
+                        // populationHouseUserDO.setResidence(vo.getResidence());
+                        houseUserList.add(populationHouseUserDO);
+                    }
+                }
+                log.info("开始查询实有人口房屋居住信息完成");
+
+                log.info("开始查询实有人口存在社区信息");
+                // 处理实有人口与社区关系以及对应特殊群体标签
+                String populationCommunityKey = populationDO.getId() + populationActVO.getCommunityId() + "";
+                if (populationDO != null) {
+                    ComMngPopulationCommunityTagsDO cpopulationCommunityTagsDO = null;
+                    if (isOnly(populationCommunityKey, populationCommunityMap)) {
+                        // 实有人口不存在于当前社区
+                        cpopulationCommunityTagsDO = new ComMngPopulationCommunityTagsDO();
+                        cpopulationCommunityTagsDO.setId(Snowflake.getId());
+                        cpopulationCommunityTagsDO.setPopulationId(populationDO.getId());
+                        cpopulationCommunityTagsDO.setCommunityId(communityId);
+                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
+                                .collect(Collectors.toList());
+                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
+                        Iterator<String> iterator = userTag.iterator();
+                        while (iterator.hasNext()) {
+                            String s = iterator.next();
+                            if (!labelList.contains(s))
+                                iterator.remove();
+                        }
+                        cpopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        cpopulationCommunityTagsDO.setCreateBy(userId);
+                        savePopulationCommunityList.add(cpopulationCommunityTagsDO);
+                    } else {
+                        // 实有人口存在于当前社区,则更新
+                        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
+                                (ComMngPopulationCommunityTagsDO)populationCommunityMap.get(populationCommunityKey);
+                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
+                                .collect(Collectors.toList());
+                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
+                        Iterator<String> iterator = userTag.iterator();
+                        while (iterator.hasNext()) {
+                            String s = iterator.next();
+                            if (!labelList.contains(s))
+                                iterator.remove();
+                        }
+                        comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
+                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
+
+                        ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                        BeanUtils.copyProperties(vo, mistake);
+                        setElderMistake(mistake, vo);
+                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
+                        mistakes.add(mistake);
+                    }
+                }
+                log.info("查询实有人口存在社区信息完成");
+            }
+        } catch (Exception e) {
+            log.info("出现错误,错误原因:" + e.getMessage());
+        }
+        log.info("处理完成导入数据");
+
+        log.info("开始执行数据库导入");
+        if (!houseList.isEmpty()) {
+            log.info("执行数据库导入房屋");
+            comMngPopulationHouseDAO.insertAll(houseList);
+            log.info("执行数据库导入房屋完成");
+        }
+        if (!saveList.isEmpty()) {
+            log.info("执行数据库导入人口");
+            this.baseMapper.insertAll(saveList);
+            log.info("执行数据库导入人口完成");
+        }
+        if (!updateList.isEmpty()) {
+            log.info("执行数据库更新人口");
+            this.baseMapper.updateAll(updateList);
+            // this.updateBatchById(updateList);
+            log.info("执行数据库更新人口完成");
+        }
+        if (!houseUserList.isEmpty()) {
+            log.info("执行数据库导入人口房屋关系");
+            comMngPopulationHouseUserService.saveBatch(houseUserList);
+            log.info("执行数据库导入人口房屋关系完成");
+        }
+        if (!savePopulationCommunityList.isEmpty()) {
+            log.info("执行数据库导入人口社区关系");
+            comMngPopulationCommunityTagsService.saveBatch(savePopulationCommunityList);
+            log.info("数据库导入人口社区关系完成");
+        }
+        if (!updatePopulationCommunityList.isEmpty()) {
+            log.info("执行数据库更新人口社区关系");
+            comMngPopulationCommunityTagsDAO.updateAll(updatePopulationCommunityList);
+            log.info("数据库更新人口社区关系完成");
+        }
+        log.info("执行数据库导入完成");
+
+        if (!mistakes.isEmpty()) {
+            log.info("返回错误数据");
+            return R.fail(mistakes);
+        }
+        return R.ok(mistakes);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R listSavePensionPopulation(List<ComMngPopulationPensionExcelVO> list, Long communityId, Long userId) {
+        // 需要新增的房屋集合
+        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
+        // 需要新增的人口集合
+        List<ComMngPopulationDO> saveList = new ArrayList<>();
+        // 需要修改的人口集合
+        List<ComMngPopulationDO> updateList = new ArrayList<>();
+        // 需要新增的吸毒人员集合
+        List<ComDrugPopulationDO> saveDrugList = new ArrayList<>();
+        // 需要修改的吸毒人员集合
+        List<ComDrugPopulationDO> updateDrugList = new ArrayList<>();
+        // 需要新增的人口与房屋关系集合
+        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
+
+        log.info("开始处理导入数据");
+        List<ComMngPopulationPensionMistakeExcelVO> mistakes = new ArrayList<>();
+        try {
+            // 查询社区信息
+            log.info("开始查询社区信息数据");
+            ComPopulationActVO populationActVO = comActDAO.getPopulationActById(communityId);
+            if (populationActVO == null) {
+                log.error("未查询到社区信息");
+                return R.fail("未查询到社区信息");
+            }
+            log.info("开始查询社区信息数据完成");
+
+            // 查询当前社区标签列表
+            List<String> labelList = new ArrayList<>();
+            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(null);
+            if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
+                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
+                        .collect(Collectors.toList());
+            }
+
+            StringBuilder areaPath = new StringBuilder();
+            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName())
+                    .append(">").append(populationActVO.getDistrictName()).append(">");
+            // 处理实有人口信息
+            Integer nub = 1;
+
+            // 查询所有人口数据放入HashMap中
+            List<ComMngPopulationDO> populationList = this.baseMapper.selectList(null);
+            HashMap<String, Object> populationMap = new HashMap<>();
+            populationList.forEach(population -> {
+                String key = population.getCardNo();
+                populationMap.put(key, population);
+            });
+            // 查询所有房屋信息放入到HashMap中
+            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(null);
+            HashMap<String, Object> houseMap = new HashMap<>();
+            houseLists.forEach(house -> {
+                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo()
+                        + house.getHouseNo();
+                houseMap.put(key, house);
+            });
+
+            List<ComMngVillageDO> villageList = comActVillageDAO.selectList(null);
+            HashMap<String, Object> villageMap = new HashMap<>();
+            villageList.forEach(village -> {
+                String key = village.getCommunityId() + village.getAlley() + village.getHouseNum();
+                villageMap.put(key, village);
+            });
+
+            List<ComMngPopulationHouseUserDO> houseUserLists = comMngPopulationHouseUserDAO.selectList(null);
+            HashMap<String, Object> houseUserMap = new HashMap<>();
+            houseUserLists.forEach(houseUser -> {
+                String key = houseUser.getPopulId() + houseUser.getHouseId() + "";
+                houseUserMap.put(key, houseUser);
+            });
+
+            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
+                    comMngPopulationCommunityTagsDAO.selectList(null);
+            HashMap<String, Object> populationCommunityMap = new HashMap<>();
+            populationCommunityLists.forEach(populationCommunity -> {
+                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
+                populationCommunityMap.put(key, populationCommunity);
+            });
+
+            for (ComMngPopulationPensionExcelVO vo : list) {
+                if (vo.getDoorNo().contains("号")) {
+                    vo.setDoorNo(vo.getDoorNo().replace("号", ""));
+                }
+                if (StringUtils.isNotEmpty(vo.getFloor())) {
+                    if (vo.getFloor().contains("栋")) {
+                        vo.setFloor(vo.getFloor().replace("栋", ""));
+                    }
+                }
+                if (StringUtils.isNotEmpty(vo.getUnitNo())) {
+                    if (vo.getUnitNo().contains("单元")) {
+                        vo.setUnitNo(vo.getUnitNo().replace("单元", ""));
+                    }
+                }
+                if (StringUtils.isNotEmpty(vo.getHouseNo())) {
+                    if (vo.getHouseNo().contains("号")) {
+                        vo.setHouseNo(vo.getHouseNo().replace("号", ""));
+                    }
+                }
+                log.info("开始查询小区街路巷是否存在");
+                // 查询小区街路巷是否存在
+                ComMngVillageDO comMngVillageDO = null;
+                String villageKey = communityId + vo.getRoad() + vo.getDoorNo();
+                if (!isOnly(villageKey, villageMap)) {
+                    comMngVillageDO = (ComMngVillageDO)villageMap.get(villageKey);
+                } else {
+                    ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setPensionMistake(mistake, vo);
+                    mistake.setMistake("街路巷或小区号不存在,请先在“小区管理”中添加该小区:街路巷:" + vo.getRoad() + ",小区号:" + vo.getDoorNo());
+                    mistakes.add(mistake);
+                    log.info("未查询到街路巷:" + vo.getRoad() + ",小区号:" + vo.getDoorNo());
+                    continue;
+                }
+                StringBuilder address = new StringBuilder();
+                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
+                        .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
+                        .append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
+                if (StringUtils.isNotEmpty(vo.getFloor())) {
+                    address.append(vo.getFloor()).append("栋");
+                }
+                if (StringUtils.isNotEmpty(vo.getUnitNo())) {
+                    address.append(vo.getUnitNo()).append("单元");
+                }
+                if (StringUtils.isNotEmpty(vo.getHouseNo())) {
+                    address.append(vo.getHouseNo()).append("号");
+                }
+                vo.setAddress(address.toString());
+                log.info("开始查询小区街路巷是否存在完成");
+
+                log.info("开始查询房屋是否存在");
+                // 先判断房屋是否存在
+                ComMngPopulationHouseDO populationHouseDO = null;
+                String houseKey =
+                        communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
+                if (isOnly(houseKey, houseMap)) {
+                    if (!houseList.isEmpty()) {
+                        for (ComMngPopulationHouseDO house : houseList) {
+                            if (house.getVillageId().equals(comMngVillageDO.getVillageId())
+                                    && house.getCommunityId().equals(communityId) && house.getFloor().equals(vo.getFloor())
+                                    && house.getUnitNo().equals(vo.getUnitNo())
+                                    && house.getHouseNo().equals(vo.getHouseNo())) {
+                                populationHouseDO = house;
+                                break;
+                            }
+                        }
+                    }
+                    if (populationHouseDO == null) {
+                        // 房屋信息不存在建立房屋信息
+                        populationHouseDO = savePensionPopulationHouse(vo, comMngVillageDO, communityId, areaPath,
+                                populationActVO.getName());
+                        houseList.add(populationHouseDO);
+                    }
+                } else {
+                    populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
+                }
+                vo.setHouseId(populationHouseDO.getId());
+                log.info("开始查询房屋是否存在完成");
+
+                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
+                    // 空户处理完房屋信息,直接返回
+                    continue;
+                }
+                String cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
+                // 判断实有人口是否已存在
+                log.info("开始查询实有人口是否已存在");
+                ComMngPopulationDO populationDO = null;
+                String populationKey = vo.getCardNo();
+                if (!isOnly(populationKey, populationMap)) {
+                    // 存在实有人口信息,则更新
+                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
+                    ComMngPopulationDO updatePopulationDO =
+                            updatePensionPopulationDO(vo, populationDO, communityId, userId);
+                    updateList.add(updatePopulationDO);
+                } else {
+                    // 不存在实有人口,则新增
+                    populationDO = savePensionPopulationDO(vo, populationActVO, comMngVillageDO, userId);
+                    saveList.add(populationDO);
+                }
+                log.info("开始查询实有人口是否已存在完成");
+
+                log.info("开始查询实有人口房屋居住信息");
+                // 处理实有人口房屋居住信息
+                if (populationDO != null) {
+                    ComMngPopulationHouseUserDO populationHouseUserDO = null;
+                    String houseUserKey = populationDO.getId() + populationHouseDO.getId() + "";
+                    if (isOnly(houseUserKey, houseUserMap)) {
+                        populationHouseUserDO = new ComMngPopulationHouseUserDO();
+                        populationHouseUserDO.setId(Snowflake.getId());
+                        populationHouseUserDO.setHouseId(populationHouseDO.getId());
+                        populationHouseUserDO.setPopulId(populationDO.getId());
+                        // populationHouseUserDO.setRelation(vo.getRelation());
+                        populationHouseUserDO.setRelationId(vo.getIsRent());
+                        // populationHouseUserDO.setResidence(vo.getResidence());
+                        houseUserList.add(populationHouseUserDO);
+                    }
+                }
+                log.info("开始查询实有人口房屋居住信息完成");
+
+                log.info("开始查询实有人口存在社区信息");
+                // 处理实有人口与社区关系以及对应特殊群体标签
+                String populationCommunityKey = populationDO.getId() + populationActVO.getCommunityId() + "";
+                if (populationDO != null) {
+                    ComMngPopulationCommunityTagsDO cpopulationCommunityTagsDO = null;
+                    if (isOnly(populationCommunityKey, populationCommunityMap)) {
+                        // 实有人口不存在于当前社区
+                        cpopulationCommunityTagsDO = new ComMngPopulationCommunityTagsDO();
+                        cpopulationCommunityTagsDO.setId(Snowflake.getId());
+                        cpopulationCommunityTagsDO.setPopulationId(populationDO.getId());
+                        cpopulationCommunityTagsDO.setCommunityId(communityId);
+                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
+                                .collect(Collectors.toList());
+                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
+                        Iterator<String> iterator = userTag.iterator();
+                        while (iterator.hasNext()) {
+                            String s = iterator.next();
+                            if (!labelList.contains(s))
+                                iterator.remove();
+                        }
+                        cpopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        cpopulationCommunityTagsDO.setCreateBy(userId);
+                        savePopulationCommunityList.add(cpopulationCommunityTagsDO);
+                    } else {
+                        // 实有人口存在于当前社区,则更新
+                        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
+                                (ComMngPopulationCommunityTagsDO)populationCommunityMap.get(populationCommunityKey);
+                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
+                                .collect(Collectors.toList());
+                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
+                        Iterator<String> iterator = userTag.iterator();
+                        while (iterator.hasNext()) {
+                            String s = iterator.next();
+                            if (!labelList.contains(s))
+                                iterator.remove();
+                        }
+                        comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
+                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
+
+                        ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                        BeanUtils.copyProperties(vo, mistake);
+                        setPensionMistake(mistake, vo);
                         mistake.setMistake("该实有人口已存在于该社区,执行更新");
                         mistakes.add(mistake);
                     }
@@ -3810,7 +4461,7 @@
         Long communityId, Long userId) {
         BeanUtils.copyProperties(vo, populationDO);
         ComDrugPopulationDO comDrugPopulationDO = comDrugPopulationDAO.selectOne(new QueryWrapper<ComDrugPopulationDO>()
-            .lambda().eq(ComDrugPopulationDO::getPopulationId, populationDO.getId()));
+            .lambda().eq(ComDrugPopulationDO::getPopulationId, populationDO.getId()).eq(ComDrugPopulationDO::getCommunityId, communityId));
         // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
         // userTagStr.split("\\(")[0]).collect(Collectors.toList());
         // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
@@ -3840,7 +4491,7 @@
             BeanUtils.copyProperties(vo, comDrugPopulationDO);
             comDrugPopulationDO.setId(Snowflake.getId());
             comDrugPopulationDO.setPopulationId(populationDO.getId());
-            comDrugPopulationDO.setCommunityId(populationDO.getActId());
+            comDrugPopulationDO.setCommunityId(communityId);
             comDrugPopulationDO.setStreetId(populationDO.getStreetId());
             comDrugPopulationDAO.insert(comDrugPopulationDO);
         }
@@ -3852,7 +4503,7 @@
         BeanUtils.copyProperties(vo, populationDO);
         ComCorrectPopulationDO comCorrectPopulationDO =
             comCorrectPopulationDAO.selectOne(new QueryWrapper<ComCorrectPopulationDO>().lambda()
-                .eq(ComCorrectPopulationDO::getPopulationId, populationDO.getId()));
+                .eq(ComCorrectPopulationDO::getPopulationId, populationDO.getId()).eq(ComCorrectPopulationDO::getCommunityId, communityId));
         // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
         // userTagStr.split("\\(")[0]).collect(Collectors.toList());
         // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
@@ -3881,7 +4532,7 @@
             BeanUtils.copyProperties(vo, comCorrectPopulationDO);
             comCorrectPopulationDO.setId(Snowflake.getId());
             comCorrectPopulationDO.setPopulationId(populationDO.getId());
-            comCorrectPopulationDO.setCommunityId(populationDO.getActId());
+            comCorrectPopulationDO.setCommunityId(communityId);
             comCorrectPopulationDO.setStreetId(populationDO.getStreetId());
             comCorrectPopulationDAO.insert(comCorrectPopulationDO);
         }
@@ -3893,7 +4544,7 @@
         BeanUtils.copyProperties(vo, populationDO);
         ComMajorPopulationDO comMajorPopulationDO =
             comMajorPopulationDAO.selectOne(new QueryWrapper<ComMajorPopulationDO>().lambda()
-                .eq(ComMajorPopulationDO::getPopulationId, populationDO.getId()));
+                .eq(ComMajorPopulationDO::getPopulationId, populationDO.getId()).eq(ComMajorPopulationDO::getCommunityId, communityId));
         // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
         // userTagStr.split("\\(")[0]).collect(Collectors.toList());
         // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
@@ -3922,7 +4573,7 @@
             BeanUtils.copyProperties(vo, comMajorPopulationDO);
             comMajorPopulationDO.setId(Snowflake.getId());
             comMajorPopulationDO.setPopulationId(populationDO.getId());
-            comMajorPopulationDO.setCommunityId(populationDO.getActId());
+            comMajorPopulationDO.setCommunityId(communityId);
             comMajorPopulationDO.setStreetId(populationDO.getStreetId());
             comMajorPopulationDAO.insert(comMajorPopulationDO);
         }
@@ -3933,7 +4584,7 @@
         Long communityId, Long userId) {
         BeanUtils.copyProperties(vo, populationDO);
         ComCultPopulationDO comCultPopulationDO = comCultPopulationDAO.selectOne(new QueryWrapper<ComCultPopulationDO>()
-            .lambda().eq(ComCultPopulationDO::getPopulationId, populationDO.getId()));
+            .lambda().eq(ComCultPopulationDO::getPopulationId, populationDO.getId()).eq(ComCultPopulationDO::getCommunityId, communityId));
         // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
         // userTagStr.split("\\(")[0]).collect(Collectors.toList());
         // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
@@ -3962,7 +4613,7 @@
             BeanUtils.copyProperties(vo, comCultPopulationDO);
             comCultPopulationDO.setId(Snowflake.getId());
             comCultPopulationDO.setPopulationId(populationDO.getId());
-            comCultPopulationDO.setCommunityId(populationDO.getActId());
+            comCultPopulationDO.setCommunityId(communityId);
             comCultPopulationDO.setStreetId(populationDO.getStreetId());
             comCultPopulationDAO.insert(comCultPopulationDO);
         }
@@ -3974,7 +4625,7 @@
         BeanUtils.copyProperties(vo, populationDO);
         ComRehabilitationPopulationDO comRehabilitationPopulationDO =
             comRehabilitationPopulationDAO.selectOne(new QueryWrapper<ComRehabilitationPopulationDO>().lambda()
-                .eq(ComRehabilitationPopulationDO::getPopulationId, populationDO.getId()));
+                .eq(ComRehabilitationPopulationDO::getPopulationId, populationDO.getId()).eq(ComRehabilitationPopulationDO::getCommunityId, communityId));
         // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
         // userTagStr.split("\\(")[0]).collect(Collectors.toList());
         // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
@@ -4003,7 +4654,7 @@
             BeanUtils.copyProperties(vo, comRehabilitationPopulationDO);
             comRehabilitationPopulationDO.setId(Snowflake.getId());
             comRehabilitationPopulationDO.setPopulationId(populationDO.getId());
-            comRehabilitationPopulationDO.setCommunityId(populationDO.getActId());
+            comRehabilitationPopulationDO.setCommunityId(communityId);
             comRehabilitationPopulationDO.setStreetId(populationDO.getStreetId());
             comRehabilitationPopulationDAO.insert(comRehabilitationPopulationDO);
         }
@@ -4015,7 +4666,7 @@
         Long communityId, Long userId) {
         BeanUtils.copyProperties(vo, populationDO);
         ComKeyPopulationDO comKeyPopulationDO = comKeyPopulationDAO.selectOne(new QueryWrapper<ComKeyPopulationDO>()
-            .lambda().eq(ComKeyPopulationDO::getPopulationId, populationDO.getId()));
+            .lambda().eq(ComKeyPopulationDO::getPopulationId, populationDO.getId()).eq(ComKeyPopulationDO::getCommunityId, communityId));
         // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
         // userTagStr.split("\\(")[0]).collect(Collectors.toList());
         // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
@@ -4044,7 +4695,7 @@
             BeanUtils.copyProperties(vo, comKeyPopulationDO);
             comKeyPopulationDO.setId(Snowflake.getId());
             comKeyPopulationDO.setPopulationId(populationDO.getId());
-            comKeyPopulationDO.setCommunityId(populationDO.getActId());
+            comKeyPopulationDO.setCommunityId(communityId);
             comKeyPopulationDO.setStreetId(populationDO.getStreetId());
             comKeyPopulationDAO.insert(comKeyPopulationDO);
         }
@@ -4056,7 +4707,7 @@
         BeanUtils.copyProperties(vo, populationDO);
         ComSentencePopulationDO comSentencePopulationDO =
             comSentencePopulationDAO.selectOne(new QueryWrapper<ComSentencePopulationDO>().lambda()
-                .eq(ComSentencePopulationDO::getPopulationId, populationDO.getId()));
+                .eq(ComSentencePopulationDO::getPopulationId, populationDO.getId()).eq(ComSentencePopulationDO::getCommunityId, communityId));
         // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
         // userTagStr.split("\\(")[0]).collect(Collectors.toList());
         // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
@@ -4085,7 +4736,7 @@
             BeanUtils.copyProperties(vo, comSentencePopulationDO);
             comSentencePopulationDO.setId(Snowflake.getId());
             comSentencePopulationDO.setPopulationId(populationDO.getId());
-            comSentencePopulationDO.setCommunityId(populationDO.getActId());
+            comSentencePopulationDO.setCommunityId(communityId);
             comSentencePopulationDO.setStreetId(populationDO.getStreetId());
             comSentencePopulationDAO.insert(comSentencePopulationDO);
         }
@@ -4097,7 +4748,7 @@
         BeanUtils.copyProperties(vo, populationDO);
         ComVeteransPopulationDO comVeteransPopulationDO =
             comVeteransPopulationDAO.selectOne(new QueryWrapper<ComVeteransPopulationDO>().lambda()
-                .eq(ComVeteransPopulationDO::getPopulationId, populationDO.getId()));
+                .eq(ComVeteransPopulationDO::getPopulationId, populationDO.getId()).eq(ComVeteransPopulationDO::getCommunityId, communityId));
         // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
         // userTagStr.split("\\(")[0]).collect(Collectors.toList());
         // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
@@ -4126,7 +4777,7 @@
             BeanUtils.copyProperties(vo, comVeteransPopulationDO);
             comVeteransPopulationDO.setId(Snowflake.getId());
             comVeteransPopulationDO.setPopulationId(populationDO.getId());
-            comVeteransPopulationDO.setCommunityId(populationDO.getActId());
+            comVeteransPopulationDO.setCommunityId(communityId);
             comVeteransPopulationDO.setStreetId(populationDO.getStreetId());
             comVeteransPopulationDAO.insert(comVeteransPopulationDO);
         }
@@ -4138,7 +4789,7 @@
         BeanUtils.copyProperties(vo, populationDO);
         ComDisabilityPopulationDO comDisabilityPopulationDO =
             comDisabilityPopulationDAO.selectOne(new QueryWrapper<ComDisabilityPopulationDO>().lambda()
-                .eq(ComDisabilityPopulationDO::getPopulationId, populationDO.getId()));
+                .eq(ComDisabilityPopulationDO::getPopulationId, populationDO.getId()).eq(ComDisabilityPopulationDO::getCommunityId, communityId));
         // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
         // userTagStr.split("\\(")[0]).collect(Collectors.toList());
         // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
@@ -4167,7 +4818,7 @@
             BeanUtils.copyProperties(vo, comDisabilityPopulationDO);
             comDisabilityPopulationDO.setId(Snowflake.getId());
             comDisabilityPopulationDO.setPopulationId(populationDO.getId());
-            comDisabilityPopulationDO.setCommunityId(populationDO.getActId());
+            comDisabilityPopulationDO.setCommunityId(communityId);
             comDisabilityPopulationDO.setStreetId(populationDO.getStreetId());
             comDisabilityPopulationDAO.insert(comDisabilityPopulationDO);
         }
@@ -4179,7 +4830,7 @@
         BeanUtils.copyProperties(vo, populationDO);
         ComLowSecurityPopulationDO comLowSecurityPopulationDO =
             comLowSecurityPopulationDAO.selectOne(new QueryWrapper<ComLowSecurityPopulationDO>().lambda()
-                .eq(ComLowSecurityPopulationDO::getPopulationId, populationDO.getId()));
+                .eq(ComLowSecurityPopulationDO::getPopulationId, populationDO.getId()).eq(ComLowSecurityPopulationDO::getCommunityId, communityId));
         // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
         // userTagStr.split("\\(")[0]).collect(Collectors.toList());
         // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
@@ -4208,9 +4859,169 @@
             BeanUtils.copyProperties(vo, comLowSecurityPopulationDO);
             comLowSecurityPopulationDO.setId(Snowflake.getId());
             comLowSecurityPopulationDO.setPopulationId(populationDO.getId());
-            comLowSecurityPopulationDO.setCommunityId(populationDO.getActId());
+            comLowSecurityPopulationDO.setCommunityId(communityId);
             comLowSecurityPopulationDO.setStreetId(populationDO.getStreetId());
             comLowSecurityPopulationDAO.insert(comLowSecurityPopulationDO);
+        }
+        return populationDO;
+    }
+
+    private ComMngPopulationDO updateElderPopulationDO(ComMngPopulationElderExcelVO vo,
+                                                             ComMngPopulationDO populationDO, Long communityId, Long userId) {
+        BeanUtils.copyProperties(vo, populationDO);
+        ComElderAuthElderliesDO comElderAuthElderliesDO =
+                comElderAuthElderliesDAO.selectOne(new QueryWrapper<ComElderAuthElderliesDO>().lambda()
+                        .eq(ComElderAuthElderliesDO::getPopulationId, populationDO.getId()).eq(ComElderAuthElderliesDO::getCommunityId, communityId));
+        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
+        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
+        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
+        // Iterator<String> iterator = userTag.iterator();
+        // while (iterator.hasNext()) {
+        // String s = iterator.next();
+        // if (!labelList.contains(s))
+        // iterator.remove();
+        // }
+        String cardNoAES = populationDO.getCardNo();
+        try {
+            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
+        } catch (Exception e) {
+            log.error("身份证加密失败");
+        }
+        // populationDO.setLabel(Joiner.on(",").join(userTag));
+        populationDO.setActId(communityId);
+        populationDO.setCardNo(cardNoAES);
+        populationDO.setUpdateBy(userId);
+        if (comElderAuthElderliesDO != null) {
+            BeanUtils.copyProperties(vo, comElderAuthElderliesDO);
+            comElderAuthElderliesDO.setIdCard(cardNoAES);
+            comElderAuthElderliesDO.setAddress(vo.getNowAddress());
+            if (StringUtils.isNotEmpty(vo.getBirthday())) {
+                int age = AgeUtils.getAgeFromBirthTimes(vo.getBirthday());
+                if (age >= 80 && age < 90) {
+                    comElderAuthElderliesDO.setPersonnelCategory(ComElderAuthElderliesDO.personnelCategory.under90);
+                }else if (age >= 90 && age < 100){
+                    comElderAuthElderliesDO.setPersonnelCategory(ComElderAuthElderliesDO.personnelCategory.under100);
+                }else if (age >= 100){
+                    comElderAuthElderliesDO.setPersonnelCategory(ComElderAuthElderliesDO.personnelCategory.above100);
+                }
+            }
+            if (!comElderAuthElderliesDO.getIsAlive().equals(1) || !comElderAuthElderliesDO.getIsRegister().equals(1)) {
+                if (vo.getIsRegister().equals(1) && vo.getIsAlive().equals(1)) {
+                    Date nowDate = new Date();
+                    // 获取当前年
+                    int year = DateUtils.getYear(nowDate);
+                    // 获取当前月
+                    int month = DateUtils.getMonth(nowDate) + 1;
+                    ComEldersAuthStatisticsDO comEldersAuthStatisticsDO = comEldersAuthStatisticsMapper.selectOne(new QueryWrapper<ComEldersAuthStatisticsDO>()
+                            .lambda().eq(ComEldersAuthStatisticsDO::getCommunityId, communityId).eq(ComEldersAuthStatisticsDO::getYear, year).eq(ComEldersAuthStatisticsDO::getMonth, month));
+                    comEldersAuthStatisticsDO.setSum(comEldersAuthStatisticsDO.getSum() + 1);
+                    comEldersAuthStatisticsMapper.updateById(comEldersAuthStatisticsDO);
+                }
+            }
+            comElderAuthElderliesDAO.updateById(comElderAuthElderliesDO);
+        } else {
+            comElderAuthElderliesDO = new ComElderAuthElderliesDO();
+            BeanUtils.copyProperties(vo, comElderAuthElderliesDO);
+            comElderAuthElderliesDO.setId(Snowflake.getId());
+            comElderAuthElderliesDO.setPopulationId(populationDO.getId());
+            comElderAuthElderliesDO.setCommunityId(communityId);
+            comElderAuthElderliesDO.setStreetId(populationDO.getStreetId());
+            comElderAuthElderliesDO.setIdCard(cardNoAES);
+            comElderAuthElderliesDO.setAddress(vo.getNowAddress());
+            if (StringUtils.isNotEmpty(vo.getBirthday())) {
+                int age = AgeUtils.getAgeFromBirthTimes(vo.getBirthday());
+                if (age >= 80 && age < 90) {
+                    comElderAuthElderliesDO.setPersonnelCategory(ComElderAuthElderliesDO.personnelCategory.under90);
+                }else if (age >= 90 && age < 100){
+                    comElderAuthElderliesDO.setPersonnelCategory(ComElderAuthElderliesDO.personnelCategory.under100);
+                }else if (age >= 100){
+                    comElderAuthElderliesDO.setPersonnelCategory(ComElderAuthElderliesDO.personnelCategory.above100);
+                }
+            }
+            if (vo.getIsRegister().equals(1) && vo.getIsAlive().equals(1)) {
+                Date nowDate = new Date();
+                // 获取当前年
+                int year = DateUtils.getYear(nowDate);
+                // 获取当前月
+                int month = DateUtils.getMonth(nowDate) + 1;
+                ComEldersAuthStatisticsDO comEldersAuthStatisticsDO = comEldersAuthStatisticsMapper.selectOne(new QueryWrapper<ComEldersAuthStatisticsDO>()
+                        .lambda().eq(ComEldersAuthStatisticsDO::getCommunityId, communityId).eq(ComEldersAuthStatisticsDO::getYear, year).eq(ComEldersAuthStatisticsDO::getMonth, month));
+                comEldersAuthStatisticsDO.setSum(comEldersAuthStatisticsDO.getSum() + 1);
+                comEldersAuthStatisticsMapper.updateById(comEldersAuthStatisticsDO);
+            }
+            comElderAuthElderliesDAO.insert(comElderAuthElderliesDO);
+        }
+        return populationDO;
+    }
+
+    private ComMngPopulationDO updatePensionPopulationDO(ComMngPopulationPensionExcelVO vo,
+                                                       ComMngPopulationDO populationDO, Long communityId, Long userId) {
+        BeanUtils.copyProperties(vo, populationDO);
+        ComPensionAuthPensionerDO comPensionAuthPensionerDO =
+                comPensionAuthPensionerDAO.selectOne(new QueryWrapper<ComPensionAuthPensionerDO>().lambda()
+                        .eq(ComPensionAuthPensionerDO::getPopulationId, populationDO.getId())
+                        .eq(ComPensionAuthPensionerDO::getCommunityId, communityId));
+        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
+        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
+        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
+        // Iterator<String> iterator = userTag.iterator();
+        // while (iterator.hasNext()) {
+        // String s = iterator.next();
+        // if (!labelList.contains(s))
+        // iterator.remove();
+        // }
+        String cardNoAES = populationDO.getCardNo();
+        try {
+            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
+        } catch (Exception e) {
+            log.error("身份证加密失败");
+        }
+        // populationDO.setLabel(Joiner.on(",").join(userTag));
+        populationDO.setActId(communityId);
+        populationDO.setCardNo(cardNoAES);
+        populationDO.setUpdateBy(userId);
+        if (comPensionAuthPensionerDO != null) {
+            BeanUtils.copyProperties(vo, comPensionAuthPensionerDO);
+            comPensionAuthPensionerDO.setIdCard(cardNoAES);
+            comPensionAuthPensionerDO.setAddress(vo.getNowAddress());
+            if (!comPensionAuthPensionerDO.getIsAlive().equals(1) || !comPensionAuthPensionerDO.getIsRegister().equals(1)) {
+                if (vo.getIsRegister().equals(1) && vo.getIsAlive().equals(1)) {
+                    Date nowDate = new Date();
+                    // 获取当前年
+                    int year = (DateUtils.getYear(nowDate));
+                    ComPensionAuthStatisticsDO comPensionAuthStatisticsDO = comPensionAuthStatisticsDAO.selectOne(new QueryWrapper<ComPensionAuthStatisticsDO>()
+                            .lambda().eq(ComPensionAuthStatisticsDO::getCommunityId, communityId)
+                            .eq(ComPensionAuthStatisticsDO::getYear, year));
+                    if(null == comPensionAuthStatisticsDO){
+                        comPensionAuthStatisticsDO = comPensionAuthStatisticsDAO.selectOne(new QueryWrapper<ComPensionAuthStatisticsDO>()
+                                .lambda().eq(ComPensionAuthStatisticsDO::getCommunityId, communityId)
+                                .eq(ComPensionAuthStatisticsDO::getYear, year - 1));
+                    }
+                    comPensionAuthStatisticsDO.setSum(comPensionAuthStatisticsDO.getSum() + 1);
+                    comPensionAuthStatisticsDAO.updateById(comPensionAuthStatisticsDO);
+                }
+            }
+            comPensionAuthPensionerDAO.updateById(comPensionAuthPensionerDO);
+        } else {
+            comPensionAuthPensionerDO = new ComPensionAuthPensionerDO();
+            BeanUtils.copyProperties(vo, comPensionAuthPensionerDO);
+            comPensionAuthPensionerDO.setId(Snowflake.getId());
+            comPensionAuthPensionerDO.setPopulationId(populationDO.getId());
+            comPensionAuthPensionerDO.setCommunityId(populationDO.getActId());
+            comPensionAuthPensionerDO.setStreetId(populationDO.getStreetId());
+            comPensionAuthPensionerDO.setIdCard(cardNoAES);
+            comPensionAuthPensionerDO.setAddress(vo.getNowAddress());
+            comPensionAuthPensionerDAO.insert(comPensionAuthPensionerDO);
+            if (vo.getIsRegister().equals(1) && vo.getIsAlive().equals(1)) {
+                Date nowDate = new Date();
+                // 获取当前年
+                int year = (DateUtils.getYear(nowDate));
+                ComPensionAuthStatisticsDO comPensionAuthStatisticsDO = comPensionAuthStatisticsDAO.selectOne(new QueryWrapper<ComPensionAuthStatisticsDO>()
+                        .lambda().eq(ComPensionAuthStatisticsDO::getCommunityId, communityId)
+                        .eq(ComPensionAuthStatisticsDO::getYear, year));
+                comPensionAuthStatisticsDO.setSum(comPensionAuthStatisticsDO.getSum() + 1);
+                comPensionAuthStatisticsDAO.updateById(comPensionAuthStatisticsDO);
+            }
         }
         return populationDO;
     }
@@ -4768,6 +5579,133 @@
         return populationDO;
     }
 
+    private ComMngPopulationDO saveElderPopulationDO(ComMngPopulationElderExcelVO vo,
+                                                           ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO, Long userId, Long communityId) {
+        ComMngPopulationDO populationDO = new ComMngPopulationDO();
+        ComElderAuthElderliesDO comElderAuthElderliesDO = new ComElderAuthElderliesDO();
+        BeanUtils.copyProperties(vo, populationDO);
+        BeanUtils.copyProperties(vo, comElderAuthElderliesDO);
+        Long populationId = Snowflake.getId();
+        populationDO.setId(populationId);
+        comElderAuthElderliesDO.setPopulationId(populationId);
+        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
+        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
+        //
+        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
+        // Iterator<String> iterator = userTag.iterator();
+        // while (iterator.hasNext()) {
+        // String s = iterator.next();
+        // if (!labelList.contains(s))
+        // iterator.remove();
+        // }
+        populationDO.setVillageId(comMngVillageDO.getVillageId());
+        populationDO.setActId(comActDO.getCommunityId());
+        populationDO.setStreetId(comActDO.getStreetId());
+        // populationDO.setLabel(Joiner.on(",").join(userTag));
+        populationDO.setVillageName(comMngVillageDO.getGroupAt());
+        populationDO.setCardNoStr(vo.getCardNo());
+        populationDO.setUpdateAt(new Date());
+
+        String cardNoAES = populationDO.getCardNo();
+        try {
+            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
+        } catch (Exception e) {
+            log.error("身份证加密失败");
+        }
+        populationDO.setCardNo(cardNoAES);
+        populationDO.setCreateBy(userId);
+        // 新增的时候默认绑定房屋id
+        // if ((vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) ||
+        // (vo.getIsResidence() != null && vo.getIsResidence().intValue() == 1)) {
+        // populationDO.setHouseId(vo.getHouseId());
+        // }else{
+        // populationDO.setHouseId(null);
+        // }
+
+        // this.baseMapper.insert(populationDO);
+        comElderAuthElderliesDO.setId(Snowflake.getId());
+        comElderAuthElderliesDO.setCommunityId(comActDO.getCommunityId());
+        comElderAuthElderliesDO.setStreetId(comActDO.getStreetId());
+        comElderAuthElderliesDO.setIdCard(cardNoAES);
+        comElderAuthElderliesDO.setAddress(vo.getNowAddress());
+        if (StringUtils.isNotEmpty(vo.getBirthday())) {
+            int age = AgeUtils.getAgeFromBirthTimes(vo.getBirthday());
+            if (age >= 80 && age < 90) {
+                comElderAuthElderliesDO.setPersonnelCategory(ComElderAuthElderliesDO.personnelCategory.under90);
+            }else if (age >= 90 && age < 100){
+                comElderAuthElderliesDO.setPersonnelCategory(ComElderAuthElderliesDO.personnelCategory.under100);
+            }else if (age >= 100){
+                comElderAuthElderliesDO.setPersonnelCategory(ComElderAuthElderliesDO.personnelCategory.above100);
+            }
+        }
+        if (vo.getIsRegister().equals(1) && vo.getIsAlive().equals(1)) {
+            Calendar calendar = Calendar.getInstance();
+            // 获取当前年
+            int year = calendar.get(Calendar.YEAR);
+            // 获取当前月
+            int month = calendar.get(Calendar.MONTH) + 1;
+            ComEldersAuthStatisticsDO comEldersAuthStatisticsDO = comEldersAuthStatisticsMapper.selectOne(new QueryWrapper<ComEldersAuthStatisticsDO>()
+                    .lambda().eq(ComEldersAuthStatisticsDO::getCommunityId, communityId).eq(ComEldersAuthStatisticsDO::getYear, year).eq(ComEldersAuthStatisticsDO::getMonth, month));
+            comEldersAuthStatisticsDO.setSum(comEldersAuthStatisticsDO.getSum() + 1);
+            comEldersAuthStatisticsMapper.updateById(comEldersAuthStatisticsDO);
+        }
+        comElderAuthElderliesDAO.insert(comElderAuthElderliesDO);
+        return populationDO;
+    }
+
+    private ComMngPopulationDO savePensionPopulationDO(ComMngPopulationPensionExcelVO vo,
+                                                     ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO, Long userId) {
+        ComMngPopulationDO populationDO = new ComMngPopulationDO();
+        ComPensionAuthPensionerDO comPensionAuthPensionerDO = new ComPensionAuthPensionerDO();
+        BeanUtils.copyProperties(vo, populationDO);
+        BeanUtils.copyProperties(vo, comPensionAuthPensionerDO);
+        Long populationId = Snowflake.getId();
+        populationDO.setId(populationId);
+        comPensionAuthPensionerDO.setPopulationId(populationId);
+        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
+        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
+        //
+        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
+        // Iterator<String> iterator = userTag.iterator();
+        // while (iterator.hasNext()) {
+        // String s = iterator.next();
+        // if (!labelList.contains(s))
+        // iterator.remove();
+        // }
+        populationDO.setVillageId(comMngVillageDO.getVillageId());
+        populationDO.setActId(comActDO.getCommunityId());
+        populationDO.setStreetId(comActDO.getStreetId());
+        // populationDO.setLabel(Joiner.on(",").join(userTag));
+        populationDO.setVillageName(comMngVillageDO.getGroupAt());
+        populationDO.setCardNoStr(vo.getCardNo());
+        populationDO.setUpdateAt(new Date());
+
+        String cardNoAES = populationDO.getCardNo();
+        try {
+            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
+        } catch (Exception e) {
+            log.error("身份证加密失败");
+        }
+        populationDO.setCardNo(cardNoAES);
+        populationDO.setCreateBy(userId);
+        // 新增的时候默认绑定房屋id
+        // if ((vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) ||
+        // (vo.getIsResidence() != null && vo.getIsResidence().intValue() == 1)) {
+        // populationDO.setHouseId(vo.getHouseId());
+        // }else{
+        // populationDO.setHouseId(null);
+        // }
+
+        // this.baseMapper.insert(populationDO);
+        comPensionAuthPensionerDO.setId(Snowflake.getId());
+        comPensionAuthPensionerDO.setCommunityId(comActDO.getCommunityId());
+        comPensionAuthPensionerDO.setStreetId(comActDO.getStreetId());
+        comPensionAuthPensionerDO.setIdCard(cardNoAES);
+        comPensionAuthPensionerDO.setAddress(vo.getNowAddress());
+        comPensionAuthPensionerDAO.insert(comPensionAuthPensionerDO);
+        return populationDO;
+    }
+
     private ComMngPopulationHouseDO savePopulationHouse(ComMngPopulationServeExcelVO vo,
         ComMngVillageDO comMngVillageDO, Long communityId, StringBuilder areaPath, String actName) {
         // 查询该房屋未建立,执行建立房屋信息
@@ -5241,6 +6179,92 @@
         return populationHouseDO;
     }
 
+    private ComMngPopulationHouseDO saveElderPopulationHouse(ComMngPopulationElderExcelVO vo,
+                                                                   ComMngVillageDO comMngVillageDO, Long communityId, StringBuilder areaPath, String actName) {
+        // 查询该房屋未建立,执行建立房屋信息
+        ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
+        populationHouseDO.setId(Snowflake.getId());
+        populationHouseDO.setStreetId(comMngVillageDO.getStreetId());
+        populationHouseDO.setVillageId(comMngVillageDO.getVillageId());
+        populationHouseDO.setAlley(vo.getRoad());
+        populationHouseDO.setHouseNum(vo.getDoorNo());
+        populationHouseDO.setStatus(vo.getIsRent());
+        populationHouseDO.setCommunityId(communityId);
+        populationHouseDO.setFloor(vo.getFloor());
+        populationHouseDO.setUnitNo(vo.getUnitNo());
+        populationHouseDO.setHouseNo(vo.getHouseNo());
+        populationHouseDO.setCode(vo.getHouseNo());
+        populationHouseDO.setAddress(vo.getAddress());
+        populationHouseDO.setUpdateAt(new Date());
+//         populationHouseDO.setConstructPurpose(vo.getHousePurpose());
+        StringBuilder housePath = new StringBuilder();
+        housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">")
+                .append(comMngVillageDO.getName()).append(">").append(vo.getAddress());
+        populationHouseDO.setPath(areaPath.toString() + housePath.toString());
+        // try {
+        // populationHouseDO.setConstructArea(new BigDecimal(vo.getBuildArea()));
+        // } catch (Exception e) {
+        // }
+
+        if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
+            populationHouseDO.setIsEmpty(PopulIsOksEnum.YES.getCode());
+        }
+        if (vo.getHouseStatus() != null) {
+            populationHouseDO.setStatus(vo.getHouseStatus());
+        }
+        if (vo.getHousePurpose() != null) {
+            populationHouseDO.setPurpose(vo.getHousePurpose());
+        }
+        if (vo.getControlStatus() != null) {
+            populationHouseDO.setControlStatus(vo.getControlStatus());
+        }
+        // comMngPopulationHouseDAO.insert(populationHouseDO);
+        return populationHouseDO;
+    }
+
+    private ComMngPopulationHouseDO savePensionPopulationHouse(ComMngPopulationPensionExcelVO vo,
+                                                             ComMngVillageDO comMngVillageDO, Long communityId, StringBuilder areaPath, String actName) {
+        // 查询该房屋未建立,执行建立房屋信息
+        ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
+        populationHouseDO.setId(Snowflake.getId());
+        populationHouseDO.setStreetId(comMngVillageDO.getStreetId());
+        populationHouseDO.setVillageId(comMngVillageDO.getVillageId());
+        populationHouseDO.setAlley(vo.getRoad());
+        populationHouseDO.setHouseNum(vo.getDoorNo());
+        populationHouseDO.setStatus(vo.getIsRent());
+        populationHouseDO.setCommunityId(communityId);
+        populationHouseDO.setFloor(vo.getFloor());
+        populationHouseDO.setUnitNo(vo.getUnitNo());
+        populationHouseDO.setHouseNo(vo.getHouseNo());
+        populationHouseDO.setCode(vo.getHouseNo());
+        populationHouseDO.setAddress(vo.getAddress());
+        populationHouseDO.setUpdateAt(new Date());
+//         populationHouseDO.setConstructPurpose(vo.getHousePurpose());
+        StringBuilder housePath = new StringBuilder();
+        housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">")
+                .append(comMngVillageDO.getName()).append(">").append(vo.getAddress());
+        populationHouseDO.setPath(areaPath.toString() + housePath.toString());
+        // try {
+        // populationHouseDO.setConstructArea(new BigDecimal(vo.getBuildArea()));
+        // } catch (Exception e) {
+        // }
+
+        if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
+            populationHouseDO.setIsEmpty(PopulIsOksEnum.YES.getCode());
+        }
+        if (vo.getHouseStatus() != null) {
+            populationHouseDO.setStatus(vo.getHouseStatus());
+        }
+        if (vo.getHousePurpose() != null) {
+            populationHouseDO.setPurpose(vo.getHousePurpose());
+        }
+        if (vo.getControlStatus() != null) {
+            populationHouseDO.setControlStatus(vo.getControlStatus());
+        }
+        // comMngPopulationHouseDAO.insert(populationHouseDO);
+        return populationHouseDO;
+    }
+
     private ComMngPopulationHouseUserDO savePopulationHouseUser(ComMngPopulationServeExcelVO vo,
         ComMngPopulationDO comMngPopulationDO, ComMngPopulationHouseDO comMngPopulationHouseDO) {
         // 查询该房屋未建立,执行建立房屋信息
@@ -5532,6 +6556,83 @@
         // comMngPopulationHouseUserDO.setCreateAt(new Date());
         // comMngPopulationHouseUserDAO.insert(comMngPopulationHouseUserDO);
         // }
+        //修改吸毒人员信息
+        if (null != vo.getComDrugPopulationVO()) {
+            ComDrugPopulationVO comDrugPopulationVO = vo.getComDrugPopulationVO();
+            ComDrugPopulationDO comDrugPopulationDO = comDrugPopulationDAO.selectById(comDrugPopulationVO.getId());
+            BeanUtils.copyProperties(comDrugPopulationVO, comDrugPopulationDO);
+            comDrugPopulationDAO.updateById(comDrugPopulationDO);
+        }
+        //修改社区矫正人员信息
+        if (null != vo.getComCorrectPopulationVO()) {
+            ComCorrectPopulationVO comCorrectPopulationVO = vo.getComCorrectPopulationVO();
+            ComCorrectPopulationDO comCorrectPopulationDO = comCorrectPopulationDAO.selectById(comCorrectPopulationVO.getId());
+            BeanUtils.copyProperties(comCorrectPopulationVO, comCorrectPopulationDO);
+            comCorrectPopulationDAO.updateById(comCorrectPopulationDO);
+        }
+        //修改精神障碍信息
+        if (null != vo.getComMajorPopulationVO()) {
+            ComMajorPopulationVO comMajorPopulationVO = vo.getComMajorPopulationVO();
+            ComMajorPopulationDO comCorrectPopulationDO = comMajorPopulationDAO.selectById(comMajorPopulationVO.getId());
+            BeanUtils.copyProperties(comMajorPopulationVO, comCorrectPopulationDO);
+            comMajorPopulationDAO.updateById(comCorrectPopulationDO);
+        }
+        //修改邪教信息
+        if (null != vo.getComCultPopulationVO()) {
+            ComCultPopulationVO comCultPopulationVO = vo.getComCultPopulationVO();
+            ComCultPopulationDO comCultPopulationDO = comCultPopulationDAO.selectById(comCultPopulationVO.getId());
+            BeanUtils.copyProperties(comCultPopulationVO, comCultPopulationDO);
+            comCultPopulationDAO.updateById(comCultPopulationDO);
+        }
+        //修改刑释信息
+        if (null != vo.getComRehabilitationPopulationVO()) {
+            ComRehabilitationPopulationVO comRehabilitationPopulationVO = vo.getComRehabilitationPopulationVO();
+            ComRehabilitationPopulationDO comRehabilitationPopulationDO = comRehabilitationPopulationDAO.selectById(comRehabilitationPopulationVO.getId());
+            BeanUtils.copyProperties(comRehabilitationPopulationVO, comRehabilitationPopulationDO);
+            comRehabilitationPopulationDAO.updateById(comRehabilitationPopulationDO);
+        }
+        //修改上访信息
+        if (null != vo.getComKeyPopulationVO()) {
+            ComKeyPopulationVO comKeyPopulationVO = vo.getComKeyPopulationVO();
+            ComKeyPopulationDO comKeyPopulationDO = comKeyPopulationDAO.selectById(comKeyPopulationVO.getId());
+            BeanUtils.copyProperties(comKeyPopulationVO, comKeyPopulationDO);
+            comKeyPopulationDAO.updateById(comKeyPopulationDO);
+        }
+        //修改退役军人信息
+        if (null != vo.getComVeteransPopulationVO()) {
+            ComVeteransPopulationVO comVeteransPopulationVO = vo.getComVeteransPopulationVO();
+            ComVeteransPopulationDO comVeteransPopulationDO = comVeteransPopulationDAO.selectById(comVeteransPopulationVO.getId());
+            BeanUtils.copyProperties(comVeteransPopulationVO, comVeteransPopulationDO);
+            comVeteransPopulationDAO.updateById(comVeteransPopulationDO);
+        }
+        //修改残疾人信息
+        if (null != vo.getComDisabilityPopulationVO()) {
+            ComDisabilityPopulationVO comDisabilityPopulationVO = vo.getComDisabilityPopulationVO();
+            ComDisabilityPopulationDO comDisabilityPopulationDO = comDisabilityPopulationDAO.selectById(comDisabilityPopulationVO.getId());
+            BeanUtils.copyProperties(comDisabilityPopulationVO, comDisabilityPopulationDO);
+            comDisabilityPopulationDAO.updateById(comDisabilityPopulationDO);
+        }
+        //修改低保户信息
+        if (null != vo.getComLowSecurityPopulationVO()) {
+            ComLowSecurityPopulationVO comLowSecurityPopulationVO = vo.getComLowSecurityPopulationVO();
+            ComLowSecurityPopulationDO comLowSecurityPopulationDO = comLowSecurityPopulationDAO.selectById(comLowSecurityPopulationVO.getId());
+            BeanUtils.copyProperties(comLowSecurityPopulationVO, comLowSecurityPopulationDO);
+            comLowSecurityPopulationDAO.updateById(comLowSecurityPopulationDO);
+        }
+        //修改高龄老人信息
+        if (null != vo.getComElderAuthElderliesVO()) {
+            ComElderAuthElderliesVO comElderAuthElderliesVO = vo.getComElderAuthElderliesVO();
+            ComElderAuthElderliesDO comElderAuthElderliesDO = comElderAuthElderliesDAO.selectById(comElderAuthElderliesVO.getId());
+            BeanUtils.copyProperties(comElderAuthElderliesVO, comElderAuthElderliesDO);
+            comElderAuthElderliesDAO.updateById(comElderAuthElderliesDO);
+        }
+        //修改养老人员信息
+        if (null != vo.getComPensionAuthPensionerVO()) {
+            ComPensionAuthPensionerVO comPensionAuthPensionerVO = vo.getComPensionAuthPensionerVO();
+            ComPensionAuthPensionerDO comPensionAuthPensionerDO = comPensionAuthPensionerDAO.selectById(comPensionAuthPensionerVO.getId());
+            BeanUtils.copyProperties(comPensionAuthPensionerVO, comPensionAuthPensionerDO);
+            comPensionAuthPensionerDAO.updateById(comPensionAuthPensionerDO);
+        }
         if (populationDAO.updateById(populationDO) > 0) {
             return R.ok();
         } else {
@@ -5585,7 +6686,7 @@
             }
             ComMngUserTagDO checkCreditCode = comMngUserTagDAO.selectOne(
                 new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getTagName, comMngTagVO.getTagName()));
-            if (null != checkCreditCode && comMngUserTagDO.getId() != checkCreditCode.getId()) {
+            if (null != checkCreditCode && !comMngUserTagDO.getId().equals(checkCreditCode.getId())) {
                 return R.fail("该标签已存在,标签名称重复");
             }
 
@@ -5597,8 +6698,7 @@
         } else {
             // 新增
             Integer count = comMngUserTagDAO.selectCount(
-                new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getTagName, comMngTagVO.getTagName())
-                    .eq(ComMngUserTagDO::getCommunityId, comMngTagVO.getCommunityId()));
+                new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getTagName, comMngTagVO.getTagName()));
             if (count > 0) {
                 return R.fail("该标签已存在,标签名称重复");
             }
@@ -6817,6 +7917,40 @@
         // mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
     }
 
+    private void setElderMistake(ComMngPopulationElderMistakeExcelVO mvo,
+                                       ComMngPopulationElderExcelVO vo) {
+        mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
+        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
+        mvo.setHouseStatus(PopulHouseStatusEnum.getCnDescByName(vo.getHouseStatus()));
+        mvo.setHousePurpose(PopulHousePurposeEnum.getCnDescByName(vo.getHousePurpose()));
+        mvo.setControlStatus(PopulHouseControlStatusEnum.getCnDescByName(vo.getControlStatus()));
+        mvo.setCultureLevel(PopulCultureLevelEnum.getCnDescByName(vo.getCultureLevel()));
+        mvo.setMarriage(PopulMarriageEnum.getCnDescByName(vo.getMarriage()));
+        mvo.setOutOrLocal(PopulOutOrLocalEnum.getCnDescByName(vo.getOutOrLocal()));
+         mvo.setIsRegister(PopulHouseUseEnum.getCnDescByName(vo.getIsRegister()));
+         mvo.setIsAlive(PopulHouseUseEnum.getCnDescByName(vo.getIsAlive()));
+        // mvo.setResidence(PopulRelationEnum.getCnDescByName(vo.getResidence()));
+        // mvo.setPersonType(PopulPersonTypeEnum.getCnDescByName(vo.getPersonType()));
+        // mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
+    }
+
+    private void setPensionMistake(ComMngPopulationPensionMistakeExcelVO mvo,
+                                 ComMngPopulationPensionExcelVO vo) {
+        mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
+        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
+        mvo.setHouseStatus(PopulHouseStatusEnum.getCnDescByName(vo.getHouseStatus()));
+        mvo.setHousePurpose(PopulHousePurposeEnum.getCnDescByName(vo.getHousePurpose()));
+        mvo.setControlStatus(PopulHouseControlStatusEnum.getCnDescByName(vo.getControlStatus()));
+        mvo.setCultureLevel(PopulCultureLevelEnum.getCnDescByName(vo.getCultureLevel()));
+        mvo.setMarriage(PopulMarriageEnum.getCnDescByName(vo.getMarriage()));
+        mvo.setOutOrLocal(PopulOutOrLocalEnum.getCnDescByName(vo.getOutOrLocal()));
+        mvo.setIsRegister(PopulHouseUseEnum.getCnDescByName(vo.getIsRegister()));
+        mvo.setIsAlive(PopulHouseUseEnum.getCnDescByName(vo.getIsAlive()));
+        // mvo.setResidence(PopulRelationEnum.getCnDescByName(vo.getResidence()));
+        // mvo.setPersonType(PopulPersonTypeEnum.getCnDescByName(vo.getPersonType()));
+        // mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
+    }
+
     /**
      * 判重方法
      * 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthHistoryRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthHistoryRecordServiceImpl.java
new file mode 100644
index 0000000..13ae908
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthHistoryRecordServiceImpl.java
@@ -0,0 +1,62 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.elder.ElderAuthStatisticHeaderDTO;
+import com.panzhihua.common.model.dtos.community.elder.PagePensionAuthStatisticDTO;
+import com.panzhihua.common.model.dtos.community.elder.SignElderAuthStatisticDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComPensionAuthHistoryRecordMapper;
+import com.panzhihua.service_community.model.dos.ComPensionAuthHistoryRecordDO;
+import com.panzhihua.service_community.service.ComPensionAuthHistoryRecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author lyq
+ * @date  2021-09-18 15:07:12
+ * @deprecated  养老认证历史记录表服务实现类
+ */
+@Slf4j
+@Service
+public class ComPensionAuthHistoryRecordServiceImpl extends ServiceImpl<ComPensionAuthHistoryRecordMapper, ComPensionAuthHistoryRecordDO> implements ComPensionAuthHistoryRecordService {
+
+    /**
+     * 养老认证统计-分页查询
+     * @param pensionAuthStatisticDTO   请求参数
+     * @return  养老认证统列表
+     */
+    @Override
+    public R pagePensionAuthStatisticAdmin(PagePensionAuthStatisticDTO pensionAuthStatisticDTO){
+        return R.ok(this.baseMapper.pageAuthStatisticAdmin(new Page(pensionAuthStatisticDTO.getPageNum(),pensionAuthStatisticDTO.getPageSize()),pensionAuthStatisticDTO));
+    }
+
+    /**
+     * 养老认证记标记
+     * @param signElderAuthStatisticDTO 请求参数
+     * @return  标记结果
+     */
+    @Override
+    public R signPensionAuthStatisticAdmin(SignElderAuthStatisticDTO signElderAuthStatisticDTO){
+
+        ComPensionAuthHistoryRecordDO authHistoryRecordDO = this.baseMapper.selectById(signElderAuthStatisticDTO.getId());
+        if(authHistoryRecordDO == null){
+            return R.fail("未查询到该记录");
+        }
+        authHistoryRecordDO.setMark(signElderAuthStatisticDTO.getMark());
+        if(this.baseMapper.updateById(authHistoryRecordDO) > 0){
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 养老认证表头统计
+     * @param statisticHeaderDTO    请求参数
+     * @return  统计结果
+     */
+    @Override
+    public R getPensionAuthHeaderStatisticAdmin(ElderAuthStatisticHeaderDTO statisticHeaderDTO){
+        return R.ok(this.baseMapper.getAuthHeaderStatisticAdmin(statisticHeaderDTO));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthPensionerServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthPensionerServiceImpl.java
new file mode 100644
index 0000000..2db22e5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthPensionerServiceImpl.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_community.service.impl;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_community.dao.ComPensionAuthPensionerDAO;
+import com.panzhihua.service_community.model.dos.ComPensionAuthPensionerDO;
+import com.panzhihua.service_community.service.ComPensionAuthPensionerService;
+
+import lombok.extern.slf4j.Slf4j;
+/**
+ * @title: ComPensionAuthPensionerServiceImpl
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老金人员服务实现类
+ * @author: hans
+ * @date: 2021/09/01 17:20
+ */
+@Slf4j
+@Service
+public class ComPensionAuthPensionerServiceImpl extends ServiceImpl<ComPensionAuthPensionerDAO, ComPensionAuthPensionerDO> implements ComPensionAuthPensionerService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java
new file mode 100644
index 0000000..4c5c62b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java
@@ -0,0 +1,482 @@
+package com.panzhihua.service_community.service.impl;
+
+import static com.panzhihua.common.enums.IdentityApprovalStatusEnum.PASS_THROUGH;
+import static com.panzhihua.common.enums.IdentityApprovalStatusEnum.PENDING_REVIEW;
+import static com.panzhihua.common.enums.IdentityAuthMethodEnum.FACE_AUTH;
+import static com.panzhihua.common.enums.IdentityAuthStatusEnum.CERTIFIED;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Objects;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+
+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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.enums.PopulHouseUseEnum;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.AddIdentityAuthDTO;
+import com.panzhihua.common.model.dtos.community.EldersAuthTypeQueryDTO;
+import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
+import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO;
+import com.panzhihua.common.model.helper.AESUtil;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordExcleVO;
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportExcelVO;
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordImportMistakeExcelVO;
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordStatisticExcleVO;
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordVO;
+import com.panzhihua.common.model.vos.community.SysConfVO;
+import com.panzhihua.common.utlis.AgeUtils;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.dao.ComMngPopulationDAO;
+import com.panzhihua.service_community.dao.ComPensionAuthPensionerDAO;
+import com.panzhihua.service_community.dao.ComPensionAuthRecordDAO;
+import com.panzhihua.service_community.dao.ComPensionAuthStatisticsDAO;
+import com.panzhihua.service_community.dao.SysConfMapper;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
+import com.panzhihua.service_community.model.dos.ComPensionAuthPensionerDO;
+import com.panzhihua.service_community.model.dos.ComPensionAuthRecordDO;
+import com.panzhihua.service_community.model.dos.ComPensionAuthStatisticsDO;
+import com.panzhihua.service_community.model.dos.SysConfDO;
+import com.panzhihua.service_community.service.ComPensionAuthRecordService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComPensionAuthRecordServiceImpl
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老认证记录服务实现类
+ * @author: hans
+ * @date: 2021/09/01 17:35
+ */
+@Slf4j
+@Service
+public class ComPensionAuthRecordServiceImpl extends ServiceImpl<ComPensionAuthRecordDAO, ComPensionAuthRecordDO> implements ComPensionAuthRecordService {
+    @Resource
+    private ComPensionAuthRecordDAO comPensionAuthRecordDAO;
+    @Resource
+    private ComMngPopulationDAO comMngPopulationDAO;
+    @Resource
+    private ComPensionAuthPensionerDAO comPensionAuthPensionerDAO;
+    @Resource
+    private ComPensionAuthRecordService comPensionAuthRecordService;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ComPensionAuthStatisticsDAO comPensionAuthStatisticsDAO;
+    @Resource
+    private SysConfMapper sysConfDao;
+    @Value("${domain.aesKey:}")
+    private String aesKey;
+
+    @Override
+    public R pagePensionAuthRecords(PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageElderAuthRecordsDTO.getPageNum();
+        Long pageSize = pageElderAuthRecordsDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1L;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10L;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComPensionAuthRecordVO> iPage = comPensionAuthRecordDAO.pagePensionAuthRecords(page, pageElderAuthRecordsDTO);
+        if (!iPage.getRecords().isEmpty()) {
+            iPage.getRecords().forEach(comPensionAuthRecordVO -> {
+                if (StringUtils.isNotEmpty(comPensionAuthRecordVO.getBirthday())) {
+                    comPensionAuthRecordVO.setAge(AgeUtils.getAgeFromBirthTimes(comPensionAuthRecordVO.getBirthday()));
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R detailPensionAuthRecords(Long authRecordId) {
+        ComPensionAuthRecordVO comPensionAuthRecordVO = comPensionAuthRecordDAO.detailPensionAuthRecords(authRecordId);
+        return R.ok(comPensionAuthRecordVO);
+    }
+
+    @Override
+    public R examinePensionAuthRecords(ComPensionAuthRecordVO comPensionAuthRecordVO) {
+        ComPensionAuthRecordDO comPensionAuthRecordDO = comPensionAuthRecordDAO.selectById(comPensionAuthRecordVO.getId());
+        if (comPensionAuthRecordDO == null) {
+            return R.fail("未查询到养老认证记录");
+        }
+        BeanUtils.copyProperties(comPensionAuthRecordVO, comPensionAuthRecordDO);
+        if (comPensionAuthRecordVO.getApprovalStatus().equals(PASS_THROUGH.getStatus())) {
+            comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus());
+        }
+        comPensionAuthRecordDO.setApprovalDate(new Date());
+        int nub = comPensionAuthRecordDAO.updateById(comPensionAuthRecordDO);
+        if (nub < 1) {
+            return R.fail("审核失败");
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R signPensionAuthRecords(ComPensionAuthRecordVO comPensionAuthRecordVO) {
+        ComPensionAuthRecordDO comPensionAuthRecordDO = comPensionAuthRecordDAO.selectById(comPensionAuthRecordVO.getId());
+        if (comPensionAuthRecordDO == null) {
+            return R.fail("未查询到养老认证记录");
+        }
+        BeanUtils.copyProperties(comPensionAuthRecordVO, comPensionAuthRecordDO);
+        int nub = comPensionAuthRecordDAO.updateById(comPensionAuthRecordDO);
+        if (nub < 1) {
+            return R.fail("标记失败");
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R getPensionAuthRecordsByIds(List<Long> ids) {
+        List<ComPensionAuthRecordExcleVO> comPensionAuthRecordExcleVOS = comPensionAuthRecordDAO.getPensionAuthRecordsByIds(ids);
+        return R.ok(comPensionAuthRecordExcleVOS);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R listSavePensionAuthRecordExcelVO(List<ComPensionAuthRecordImportExcelVO> list, Long communityId, Long userId) {
+        // 需要新增的认证记录集合
+        List<ComPensionAuthRecordDO> saveList = new ArrayList<>();
+        // 需要修改的认证记录集合
+        List<ComPensionAuthRecordDO> updateList = new ArrayList<>();
+        log.info("开始处理导入数据");
+        Date nowDate = new Date();
+        List<ComPensionAuthRecordImportMistakeExcelVO> mistakes = new ArrayList<>();
+        try {
+            // 查询所有人口数据放入HashMap中
+            List<ComMngPopulationDO> populationList = comMngPopulationDAO.selectList(null);
+            HashMap<String, Object> populationMap = new HashMap<>();
+            populationList.forEach(population -> {
+                String key = population.getCardNo();
+                populationMap.put(key, population);
+            });
+
+            for (ComPensionAuthRecordImportExcelVO vo : list) {
+                // 判断实有人口是否已存在
+                log.info("开始查询实有人口是否已存在");
+                ComMngPopulationDO populationDO = null;
+                String populationKey = vo.getIdCard();
+                if (!isOnly(populationKey, populationMap)) {
+                    // 存在实有人口信息,则查询养老信息(是否符合认证条件(健在且登记了养老认证))
+                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
+                    ComPensionAuthPensionerDO comPensionAuthPensionerDO = comPensionAuthPensionerDAO.selectOne(new QueryWrapper<ComPensionAuthPensionerDO>()
+                            .lambda().eq(ComPensionAuthPensionerDO::getPopulationId, populationDO.getId()).eq(ComPensionAuthPensionerDO::getCommunityId, communityId));
+                    //不存在养老信息,需要先导入养老信息
+                    if (null == comPensionAuthPensionerDO) {
+                        ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
+                        BeanUtils.copyProperties(vo, mistake);
+                        mistake.setMistake("该实有人口已存在,但本社区不存在养老信息,请先导入养老人口");
+                        mistake.setAuthDate(DateUtils.format(vo.getAuthDate(),DateUtils.yyyyMMdd_format));
+                        mistakes.add(mistake);
+                    }else {
+                        //存在养老信息,判断是否满足认证条件
+                        if (!comPensionAuthPensionerDO.getIsRegister().equals(1) || !comPensionAuthPensionerDO.getIsAlive().equals(1)) {
+                            ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
+                            BeanUtils.copyProperties(vo, mistake);
+                            mistake.setMistake("该人口不健在,或者未做养老登记");
+                            mistake.setAuthDate(DateUtils.format(vo.getAuthDate(),DateUtils.yyyyMMdd_format));
+                            mistakes.add(mistake);
+                        }else {
+                            //满足认证条件,判断是否存在当期认证记录
+                            List<ComPensionAuthRecordDO> pensionAuthList = null;
+                            ComPensionAuthRecordDO comPensionAuthRecordDO = null;
+                            String authPeriod = vo.getAuthPeriod();
+                            pensionAuthList = comPensionAuthRecordDAO.selectList(new QueryWrapper<ComPensionAuthRecordDO>().lambda().
+                                    eq(ComPensionAuthRecordDO::getPensionerId, comPensionAuthPensionerDO.getId())
+                                    .eq(ComPensionAuthRecordDO::getAuthPeriod, authPeriod).orderByDesc(ComPensionAuthRecordDO::getCreateAt));
+
+                            if (null != pensionAuthList && pensionAuthList.size() > 0) {
+                                comPensionAuthRecordDO = pensionAuthList.get(0);
+                                //存在记录且状态为已认证,不能修改
+                                if (comPensionAuthRecordDO.getApprovalStatus().equals(ComPensionAuthRecordDO.approvalStatus.tg)) {
+                                    ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
+                                    BeanUtils.copyProperties(vo, mistake);
+                                    mistake.setMistake("该人口本期已认证,不可重复认证");
+                                    mistake.setAuthDate(DateUtils.format(vo.getAuthDate(),DateUtils.yyyyMMdd_format));
+                                    mistakes.add(mistake);
+                                }else if (comPensionAuthRecordDO.getApprovalStatus().equals(ComPensionAuthRecordDO.approvalStatus.dsh)) {
+                                    //存在待审核记录,进行更新认证信息
+                                    comPensionAuthRecordDO = updatePensionAuthRecordsDO(vo, comPensionAuthRecordDO, userId,communityId,nowDate);
+                                    updateList.add(comPensionAuthRecordDO);
+                                }else {
+                                    // 不存在记录,则新增
+                                    comPensionAuthRecordDO = savePensionAuthRecordsDO(vo, comPensionAuthPensionerDO, authPeriod, userId,communityId,nowDate);
+                                    saveList.add(comPensionAuthRecordDO);
+                                }
+                            }else {
+                                // 不存在记录,则新增
+                                comPensionAuthRecordDO = savePensionAuthRecordsDO(vo, comPensionAuthPensionerDO, authPeriod, userId,communityId,nowDate);
+                                saveList.add(comPensionAuthRecordDO);
+                            }
+                        }
+                    }
+                } else {
+                    // 不存在实有人口,则新增
+                    ComPensionAuthRecordImportMistakeExcelVO mistake = new ComPensionAuthRecordImportMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    mistake.setMistake("不存在该实有人口,请先导入实有人口信息");
+                    mistake.setAuthDate(DateUtils.format(vo.getAuthDate(),DateUtils.yyyyMMdd_format));
+                    mistakes.add(mistake);
+                }
+                log.info("开始查询实有人口是否已存在完成");
+            }
+        } catch (Exception e) {
+            log.info("出现错误,错误原因:" + e.getMessage());
+        }
+        log.info("处理完成导入数据");
+
+        log.info("开始执行数据库导入");
+        if (!saveList.isEmpty()) {
+            log.info("执行数据库导入线下认证记录");
+            comPensionAuthRecordService.saveBatch(saveList);
+            log.info("数据库导入线下认证记录完成");
+        }
+        if (!updateList.isEmpty()) {
+            log.info("执行数据库更新线下认证记录");
+            comPensionAuthRecordDAO.updateAll(updateList);
+            log.info("数据库更新线下认证记录完成");
+        }
+        log.info("执行数据库导入完成");
+
+        if (!mistakes.isEmpty()) {
+            log.info("返回错误数据");
+            return R.fail(mistakes);
+        }
+        return R.ok(mistakes);
+    }
+
+    @Override
+    public R exportPensionAuthRecordsStatistic(PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
+        List<ComPensionAuthRecordStatisticExcleVO> comPensionAuthRecordStatisticExcleVOS = comPensionAuthRecordDAO.exportPensionAuthRecordsStatistic(pageElderAuthRecordsDTO);
+        return R.ok(comPensionAuthRecordStatisticExcleVOS);
+    }
+
+    @Override
+    public R setPensionAuthType(Long communityId, Integer type) {
+        List<SysConfDO> authConf =
+                sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCommunityId, communityId)
+                        .eq(SysConfDO::getCode, "PENSION_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt));
+        if (authConf != null && authConf.size() > 0) {
+            SysConfDO first = authConf.get(0);
+            first.setValue(type + "");
+            int updated = sysConfDao.updateById(first);
+            if (updated == 1) {
+                return R.ok();
+            }
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R communityPensionAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) {
+        Long communityId = eldersAuthTypeQueryDTO.getCommunityId();
+        List<SysConfDO> confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
+                .eq(SysConfDO::getCommunityId, communityId).eq(SysConfDO::getCode,"PENSION_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt));
+        if (confDOList == null || confDOList.size() == 0) {
+            SysConfDO sysConfDO = new SysConfDO();
+            sysConfDO.setCode("PENSION_AUTH_TYPE_" + communityId);
+            sysConfDO.setName("养老认证类型");
+            sysConfDO.setValue(2 + "");// 核验类型(1.视频认证 2.人脸核验)
+            sysConfDO.setDescription("养老认证默认添加的核验类型");
+            sysConfDO.setCommunityId(communityId);
+            sysConfDO.setCreateBy(eldersAuthTypeQueryDTO.getUserId());
+            int inserted = sysConfDao.insert(sysConfDO);
+            if (inserted != 1) {
+                throw new ServiceException("添加养老认证默认添加的核验类型失败");
+            }
+            confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
+                    .eq(SysConfDO::getCommunityId, communityId)
+                    .orderByDesc(SysConfDO::getCreateAt));
+        }
+        if (confDOList != null && confDOList.size() > 0) {
+            SysConfDO latest = confDOList.get(0);
+            SysConfVO sysConfVO = new SysConfVO();
+            BeanUtils.copyProperties(latest, sysConfVO);
+            return R.ok(sysConfVO.getValue());
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R timedTaskPensionAuthStatisticsJobHandler() {
+        Date nowDate = new Date();
+        int month = DateUtils.getMonth(nowDate) + 1;
+        int year = DateUtils.getYear(nowDate);
+        //查询所有启用中社区
+        List<ComActDO> actList = comActDAO.selectList(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getState,0));
+        actList.forEach(act -> {
+            //养老认证统计
+            ComPensionAuthStatisticsDO comPensionAuthStatisticsDO = new ComPensionAuthStatisticsDO();
+            comPensionAuthStatisticsDO.setCommunityId(act.getCommunityId());
+            comPensionAuthStatisticsDO.setMonth(month);
+            comPensionAuthStatisticsDO.setYear(year);
+            comPensionAuthStatisticsDO.setCreateAt(nowDate);
+            //本期应认证人数
+            List<ComPensionAuthPensionerDO> comPensionAuthPensionerDOS = comPensionAuthPensionerDAO.selectList(new QueryWrapper<ComPensionAuthPensionerDO>().lambda()
+                    .eq(ComPensionAuthPensionerDO::getCommunityId, act.getCommunityId())
+                    .eq(ComPensionAuthPensionerDO::getIsAlive, 1)
+                    .eq(ComPensionAuthPensionerDO::getIsRegister, 1));
+            if (null != comPensionAuthPensionerDOS) {
+                comPensionAuthStatisticsDO.setSum(comPensionAuthPensionerDOS.size());
+            }
+            comPensionAuthStatisticsDAO.insert(comPensionAuthStatisticsDO);
+            //上期已认证人数
+            int authSum = comPensionAuthPensionerDAO.havePensionAuthPensionerAmount(act.getCommunityId(), String.valueOf(year - 1));
+            ComPensionAuthStatisticsDO comPensionAuthStatisticsDO1 = comPensionAuthStatisticsDAO.selectOne(new QueryWrapper<ComPensionAuthStatisticsDO>()
+                    .lambda().eq(ComPensionAuthStatisticsDO::getCommunityId, act.getCommunityId()).eq(ComPensionAuthStatisticsDO::getYear, year - 1));
+            comPensionAuthStatisticsDO1.setAuthSum(authSum);
+            comPensionAuthStatisticsDO1.setNoAuthSum(comPensionAuthStatisticsDO1.getSum() - comPensionAuthStatisticsDO1.getAuthSum());
+            comPensionAuthStatisticsDAO.updateById(comPensionAuthStatisticsDO1);
+        });
+        return R.ok();
+    }
+
+    private ComPensionAuthRecordDO updatePensionAuthRecordsDO(ComPensionAuthRecordImportExcelVO vo
+            , ComPensionAuthRecordDO comPensionAuthRecordsDO, Long userId , Long communityId,Date date) {
+        BeanUtils.copyProperties(vo, comPensionAuthRecordsDO);
+        comPensionAuthRecordsDO.setSubmitUserId(userId);
+        comPensionAuthRecordsDO.setApproverId(userId);
+        comPensionAuthRecordsDO.setApprovalStatus(ComPensionAuthRecordDO.approvalStatus.tg);
+        comPensionAuthRecordsDO.setAuthMethod(ComPensionAuthRecordDO.authMethod.xxrz);
+        comPensionAuthRecordsDO.setApprovalDate(date);
+        comPensionAuthRecordsDO.setAuthStatus(ComPensionAuthRecordDO.authStatus.rez);
+        comPensionAuthRecordsDO.setCommunityId(communityId);
+        comPensionAuthRecordsDO.setMark(vo.getMark());
+        return comPensionAuthRecordsDO;
+    }
+
+    private ComPensionAuthRecordDO savePensionAuthRecordsDO(ComPensionAuthRecordImportExcelVO vo
+            ,  ComPensionAuthPensionerDO comPensionAuthPensionerDO, String authPeriod, Long userId, Long communityId,Date date) {
+        ComPensionAuthRecordDO comPensionAuthRecordDO = new ComPensionAuthRecordDO();
+        BeanUtils.copyProperties(vo, comPensionAuthRecordDO);
+        comPensionAuthRecordDO.setId(Snowflake.getId());
+        comPensionAuthRecordDO.setPensionerId(comPensionAuthPensionerDO.getId());
+        comPensionAuthRecordDO.setAuthPeriod(authPeriod);
+        comPensionAuthRecordDO.setSubmitUserId(userId);
+        comPensionAuthRecordDO.setApproverId(userId);
+        comPensionAuthRecordDO.setApprovalStatus(PASS_THROUGH.getStatus());
+        comPensionAuthRecordDO.setApprovalDate(new Date());
+        comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus());
+        comPensionAuthRecordDO.setAuthMethod(ComPensionAuthRecordDO.authMethod.xxrz);
+        comPensionAuthRecordDO.setCommunityId(communityId);
+        comPensionAuthRecordDO.setCreateAt(date);
+        comPensionAuthRecordDO.setMark(vo.getMark());
+        return comPensionAuthRecordDO;
+    }
+
+    /**
+     * 判重方法
+     *
+     * @param key
+     *            主键
+     * @param hashMap
+     *            数据集
+     * @return 存在即为false 不存在则为true
+     */
+    private boolean isOnly(String key, HashMap<String, Object> hashMap) {
+        return ObjectUtils.isEmpty(hashMap.get(key));
+    }
+
+    /**
+     * 新增养老认证
+     * @param addIdentityAuthDTO 请求参数
+     * @return 新增结果
+     */
+    @Override
+    public R addPensionAuth(AddIdentityAuthDTO addIdentityAuthDTO) {
+        String idCard;
+        try {
+            idCard = AESUtil.encrypt128(addIdentityAuthDTO.getIdCard(), aesKey);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("加密失败【{}】", e.getMessage());
+            return R.fail("认证失败,请重新尝试");
+        }
+        ComPensionAuthPensionerDO comPensionAuthPensionerDO = comPensionAuthPensionerDAO.selectOne(new QueryWrapper<ComPensionAuthPensionerDO>()
+                .lambda().eq(ComPensionAuthPensionerDO::getIdCard, idCard).eq(ComPensionAuthPensionerDO::getCommunityId, addIdentityAuthDTO.getCommunityId()));
+        if (Objects.isNull(comPensionAuthPensionerDO)) {
+            return R.fail("该人员未在社区报道无法认证");
+        }
+        boolean isInfoCorrect = !comPensionAuthPensionerDO.getName().equals(addIdentityAuthDTO.getName()) ||
+                !(comPensionAuthPensionerDO.getIsRegister().equals(ComPensionAuthPensionerDO.isOk.yes)
+                        && comPensionAuthPensionerDO.getIsAlive().equals(ComPensionAuthPensionerDO.isOk.yes));
+        if (isInfoCorrect) {
+            return R.fail("信息有误,请检查!");
+        }
+        Date dateNow = new Date();
+        String currentAuthPeriod = new SimpleDateFormat("yyyy").format(dateNow);
+        List<ComPensionAuthRecordDO> currentAuthPeriodRecords = comPensionAuthRecordDAO
+                .selectList(new QueryWrapper<ComPensionAuthRecordDO>().lambda()
+                        .eq(ComPensionAuthRecordDO::getAuthPeriod, currentAuthPeriod)
+                        .eq(ComPensionAuthRecordDO::getPensionerId, comPensionAuthPensionerDO.getId()));
+        if (!currentAuthPeriodRecords.isEmpty()) {
+            boolean alreadyAuth = currentAuthPeriodRecords.stream()
+                    .filter(record -> record.getAuthStatus().equals(CERTIFIED.getStatus())).findFirst().isPresent();
+            if (alreadyAuth) {
+                return R.fail(String.format("该人员%s期已认证无需重复认证", currentAuthPeriod));
+            }
+            boolean isPendingReview = currentAuthPeriodRecords.stream()
+                    .filter(record -> record.getApprovalStatus().intValue() == PENDING_REVIEW.getStatus()).findFirst().isPresent();
+            if (isPendingReview) {
+                return R.fail("该人员本期有尚未审核的认证,请稍后再试!");
+            }
+        }
+        ComPensionAuthRecordDO comPensionAuthRecordDO = new ComPensionAuthRecordDO();
+        BeanUtils.copyProperties(addIdentityAuthDTO, comPensionAuthRecordDO);
+        comPensionAuthRecordDO.setPensionerId(comPensionAuthPensionerDO.getId());
+        comPensionAuthRecordDO.setAuthDate(dateNow);
+        comPensionAuthRecordDO.setAuthPeriod(currentAuthPeriod);
+        if (addIdentityAuthDTO.getAuthMethod().intValue() == FACE_AUTH.getMethod()) {
+            comPensionAuthRecordDO.setApprovalStatus(PASS_THROUGH.getStatus());
+            comPensionAuthRecordDO.setApprovalDate(dateNow);
+            comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus());
+        }
+        if (this.baseMapper.insert(comPensionAuthRecordDO) < 0) {
+            return R.fail("认证失败,请重新尝试");
+        }
+        return R.ok();
+    }
+
+    /**
+     * 分页查询养老认证记录
+     * @param pageIdentityAuthRecordDTO 查询参数
+     * @return 养老认证记录列表
+     */
+    @Override
+    public R queryRecordWithPage(PageIdentityAuthRecordDTO pageIdentityAuthRecordDTO) {
+        return R.ok(comPensionAuthRecordDAO.queryRecordWithPage(new Page(pageIdentityAuthRecordDTO.getPageNum(),
+                pageIdentityAuthRecordDTO.getPageSize()), pageIdentityAuthRecordDTO));
+    }
+
+    /**
+     * 获取养老认证详情
+     * @param identityAuthId 认证id
+     * @return 认证记录详情
+     */
+    @Override
+    public R retrievePensionAuthDetail(Long identityAuthId) {
+        return R.ok(comPensionAuthRecordDAO.findById(identityAuthId));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthStatisticsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthStatisticsServiceImpl.java
new file mode 100644
index 0000000..a91ddf2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthStatisticsServiceImpl.java
@@ -0,0 +1,21 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_community.dao.ComPensionAuthStatisticsDAO;
+import com.panzhihua.service_community.model.dos.ComPensionAuthStatisticsDO;
+import com.panzhihua.service_community.service.ComPensionAuthStatisticsService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @title: ComPensionAuthStatisticsServiceImpl
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老认证统计服务实现类
+ * @author: txb
+ * @date: 2021/09/07 17:35
+ */
+@Slf4j
+@Service
+public class ComPensionAuthStatisticsServiceImpl extends ServiceImpl<ComPensionAuthStatisticsDAO, ComPensionAuthStatisticsDO> implements ComPensionAuthStatisticsService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwDangerReportServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwDangerReportServiceImpl.java
index 7bcbc5e..8352b86 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwDangerReportServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwDangerReportServiceImpl.java
@@ -1,10 +1,13 @@
 package com.panzhihua.service_community.service.impl;
 
+import java.text.SimpleDateFormat;
 import java.util.List;
 import java.util.Map;
 
 import javax.annotation.Resource;
 
+import com.panzhihua.common.model.dtos.community.ComSwDangerReportEditDTO;
+import com.panzhihua.service_community.model.dos.ComSwSafetyWorkRecordDO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
@@ -121,6 +124,54 @@
     }
 
     @Override
+    public R editDangerReport(ComSwDangerReportEditDTO comSwDangerReportEditDTO) {
+        ComSwDangerReportDO comSwDangerReportDO = comSwDangerReportDAO.selectById(comSwDangerReportEditDTO.getId());
+        if (null == comSwDangerReportDO) {
+            return R.fail("该隐患报告不存在");
+        }
+        BeanUtils.copyProperties(comSwDangerReportEditDTO, comSwDangerReportDO);
+        comSwDangerReportDO.setDangerType(comSwDangerReportEditDTO.getPatrolType());
+        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>()
+                .lambda().eq(ComSwPatrolRecordReportDO::getReportId, comSwDangerReportEditDTO.getId()));
+        ComSwPatrolRecordDO comSwPatrolRecordDO = new ComSwPatrolRecordDO();
+        if (null != comSwPatrolRecordReportDO) {
+            comSwPatrolRecordDO = comSwPatrolRecordDAO.selectOne(new QueryWrapper<ComSwPatrolRecordDO>()
+                    .lambda().eq(ComSwPatrolRecordDO::getId, comSwPatrolRecordReportDO.getPatrolRecordId()));
+            Long id = comSwPatrolRecordDO.getId();
+            BeanUtils.copyProperties(comSwDangerReportEditDTO, comSwPatrolRecordDO);
+            comSwPatrolRecordDO.setId(id);
+            try {
+                comSwPatrolRecordDO.setPatrolTime(new SimpleDateFormat("yyyy-MM-dd").parse(comSwDangerReportEditDTO.getPatrolTime()));
+                comSwPatrolRecordDO.setSuccessionTime(new SimpleDateFormat("yyyy-MM-dd").parse(comSwDangerReportEditDTO.getSuccessionTime()));
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            // 根据传递的巡查人员id查询巡查人员的名字和电话
+            StringBuilder nameString = new StringBuilder();
+            StringBuilder phoneString = new StringBuilder();
+            if (StringUtils.isNotEmpty(comSwDangerReportEditDTO.getPatrolPerson())) {
+                String[] personIds = comSwDangerReportEditDTO.getPatrolPerson().split(",");
+                for (int i = 0; i < personIds.length; i++) {
+                    Map<String, String> person = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
+                    if (person != null) {
+                        if (i != 0) {
+                            nameString.append(",");
+                            phoneString.append(",");
+                        }
+                        nameString.append(person.get("name"));
+                        phoneString.append(person.get("phone"));
+                    }
+                }
+                comSwPatrolRecordDO.setPersonName(nameString.toString());
+                comSwPatrolRecordDO.setPersonPhone(phoneString.toString());
+            }
+        }
+        comSwPatrolRecordDAO.updateById(comSwPatrolRecordDO);
+        comSwDangerReportDAO.updateById(comSwDangerReportDO);
+        return R.ok();
+    }
+
+    @Override
     public R detailDangerReport(Long dangerReportId) {
         ComSwDangerReportDO comSwDangerReportDO = comSwDangerReportDAO.selectById(dangerReportId);
         if (null == comSwDangerReportDO) {
@@ -134,6 +185,7 @@
             ComSwPatrolRecordDO comSwPatrolRecordDO =
                 comSwPatrolRecordDAO.selectById(comSwPatrolRecordReportDO.getPatrolRecordId());
             BeanUtils.copyProperties(comSwPatrolRecordDO, comSwDangerReportVO);
+            comSwDangerReportVO.setPatrolTime(new SimpleDateFormat("yyyy-MM-dd").format(comSwPatrolRecordDO.getPatrolTime()));
         }
         BeanUtils.copyProperties(comSwDangerReportDO, comSwDangerReportVO);
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java
index 2b6b7ea..0b63600 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java
@@ -6,6 +6,7 @@
 
 import javax.annotation.Resource;
 
+import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordEditDTO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
@@ -165,6 +166,62 @@
     }
 
     @Override
+    public R editPatrolRecord(ComSwPatrolRecordEditDTO comSwPatrolRecordEditDTO) {
+        ComSwPatrolRecordDO comSwPatrolRecordDO = comSwPatrolRecordDAO.selectById(comSwPatrolRecordEditDTO.getId());
+        if (null == comSwPatrolRecordDO) {
+            return R.fail("改巡查记录不存在");
+        }
+        BeanUtils.copyProperties(comSwPatrolRecordEditDTO, comSwPatrolRecordDO);
+        try {
+            comSwPatrolRecordDO.setPatrolTime(new SimpleDateFormat("yyyy-MM-dd").parse(comSwPatrolRecordEditDTO.getPatrolTime()));
+            comSwPatrolRecordDO.setSuccessionTime(new SimpleDateFormat("yyyy-MM-dd").parse(comSwPatrolRecordEditDTO.getSuccessionTime()));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        // 根据传递的巡查人员id查询巡查人员的名字和电话
+        StringBuilder nameString = new StringBuilder();
+        StringBuilder phoneString = new StringBuilder();
+        if (StringUtils.isNotEmpty(comSwPatrolRecordEditDTO.getPatrolPerson())) {
+            String[] personIds = comSwPatrolRecordEditDTO.getPatrolPerson().split(",");
+            for (int i = 0; i < personIds.length; i++) {
+                Map<String, String> person = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
+                if (person != null) {
+                    if (i != 0) {
+                        nameString.append(",");
+                        phoneString.append(",");
+                    }
+                    nameString.append(person.get("name"));
+                    phoneString.append(person.get("phone"));
+                }
+            }
+            comSwPatrolRecordDO.setPersonName(nameString.toString());
+            comSwPatrolRecordDO.setPersonPhone(phoneString.toString());
+        }
+        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>()
+                .lambda().eq(ComSwPatrolRecordReportDO::getPatrolRecordId, comSwPatrolRecordEditDTO.getId()));
+        ComSwSafetyWorkRecordDO comSwSafetyWorkRecordDO = comSwSafetyWorkRecordDAO.selectOne(new QueryWrapper<ComSwSafetyWorkRecordDO>()
+                .lambda().eq(ComSwSafetyWorkRecordDO::getId, comSwPatrolRecordReportDO.getReportId()));
+        if (null != comSwSafetyWorkRecordDO) {
+            Long id = comSwSafetyWorkRecordDO.getId();
+            BeanUtils.copyProperties(comSwPatrolRecordEditDTO, comSwSafetyWorkRecordDO);
+            comSwSafetyWorkRecordDO.setId(id);
+            comSwSafetyWorkRecordDAO.updateById(comSwSafetyWorkRecordDO);
+        }else {
+            ComSwDangerReportDO comSwDangerReportDO = comSwDangerReportDAO.selectOne(new QueryWrapper<ComSwDangerReportDO>()
+                    .lambda().eq(ComSwDangerReportDO::getId, comSwPatrolRecordReportDO.getReportId()));
+            Long id = comSwDangerReportDO.getId();
+            BeanUtils.copyProperties(comSwPatrolRecordEditDTO, comSwDangerReportDO);
+            comSwDangerReportDO.setId(id);
+            comSwDangerReportDAO.updateById(comSwDangerReportDO);
+        }
+        int update = comSwPatrolRecordDAO.updateById(comSwPatrolRecordDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail("编辑失败");
+    }
+
+    @Override
     public R detailPatrolRecord(Long patrolRecordId) {
         ComSwPatrolRecordDO comSwPatrolRecordDO = comSwPatrolRecordDAO.selectById(patrolRecordId);
         if (null == comSwPatrolRecordDO) {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwSafetyWorkRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwSafetyWorkRecordServiceImpl.java
index 1f4ae6f..df962bb 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwSafetyWorkRecordServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwSafetyWorkRecordServiceImpl.java
@@ -1,9 +1,11 @@
 package com.panzhihua.service_community.service.impl;
 
+import java.text.SimpleDateFormat;
 import java.util.Map;
 
 import javax.annotation.Resource;
 
+import com.panzhihua.common.model.dtos.community.ComSwSafetyWorkEditDTO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
@@ -87,6 +89,54 @@
     }
 
     @Override
+    public R editSafetyWork(ComSwSafetyWorkEditDTO comSwSafetyWorkEditDTO) {
+        ComSwSafetyWorkRecordDO comSwSafetyWorkRecordDO = comSwSafetyWorkRecordDAO.selectById(comSwSafetyWorkEditDTO.getId());
+        if (null == comSwSafetyWorkRecordDO) {
+            return R.fail("该安全工作记录不存在");
+        }
+        comSwSafetyWorkRecordDO.setRemark(comSwSafetyWorkEditDTO.getRemark());
+        comSwSafetyWorkRecordDO.setUpdateBy(comSwSafetyWorkEditDTO.getUpdateBy());
+        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>()
+                .lambda().eq(ComSwPatrolRecordReportDO::getReportId, comSwSafetyWorkEditDTO.getId()));
+        ComSwPatrolRecordDO comSwPatrolRecordDO = new ComSwPatrolRecordDO();
+        if (null != comSwPatrolRecordReportDO) {
+            comSwPatrolRecordDO = comSwPatrolRecordDAO.selectOne(new QueryWrapper<ComSwPatrolRecordDO>()
+                    .lambda().eq(ComSwPatrolRecordDO::getId, comSwPatrolRecordReportDO.getPatrolRecordId()));
+            Long id = comSwPatrolRecordDO.getId();
+            BeanUtils.copyProperties(comSwSafetyWorkEditDTO, comSwPatrolRecordDO);
+            comSwPatrolRecordDO.setId(id);
+            try {
+                comSwPatrolRecordDO.setPatrolTime(new SimpleDateFormat("yyyy-MM-dd").parse(comSwSafetyWorkEditDTO.getPatrolTime()));
+                comSwPatrolRecordDO.setSuccessionTime(new SimpleDateFormat("yyyy-MM-dd").parse(comSwSafetyWorkEditDTO.getSuccessionTime()));
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            // 根据传递的巡查人员id查询巡查人员的名字和电话
+            StringBuilder nameString = new StringBuilder();
+            StringBuilder phoneString = new StringBuilder();
+            if (StringUtils.isNotEmpty(comSwSafetyWorkEditDTO.getPatrolPerson())) {
+                String[] personIds = comSwSafetyWorkEditDTO.getPatrolPerson().split(",");
+                for (int i = 0; i < personIds.length; i++) {
+                    Map<String, String> person = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
+                    if (person != null) {
+                        if (i != 0) {
+                            nameString.append(",");
+                            phoneString.append(",");
+                        }
+                        nameString.append(person.get("name"));
+                        phoneString.append(person.get("phone"));
+                    }
+                }
+                comSwPatrolRecordDO.setPersonName(nameString.toString());
+                comSwPatrolRecordDO.setPersonPhone(phoneString.toString());
+            }
+        }
+        comSwPatrolRecordDAO.updateById(comSwPatrolRecordDO);
+        comSwSafetyWorkRecordDAO.updateById(comSwSafetyWorkRecordDO);
+        return R.ok();
+    }
+
+    @Override
     public R detailSafetyWorkRecord(Long safetyWorkRecordId, Long communityId) {
         ComSwSafetyWorkRecordDO swSafetyWorkRecordDO = comSwSafetyWorkRecordDAO.selectById(safetyWorkRecordId);
         if (null == swSafetyWorkRecordDO) {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java
index 5eb7e1b..1b4be99 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java
@@ -3,9 +3,14 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 import javax.annotation.Resource;
 
+import com.panzhihua.common.model.dtos.community.elder.ElderAuthStatisticHeaderDTO;
+import com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO;
+import com.panzhihua.common.model.dtos.community.elder.SignElderAuthStatisticDTO;
+import com.panzhihua.common.model.vos.elders.ComEldersAuthHistoryVO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -60,6 +65,8 @@
     private ComEldersAuthHistoryRecordMapper comEldersAuthHistoryRecordMapper;
     @Resource
     private ComEldersAuthStatisticsMapper comEldersAuthStatisticsMapper;
+    @Resource
+    private ComActDAO comActDAO;
 
     @Value("${domain.aesKey:}")
     private String aesKey;
@@ -247,10 +254,10 @@
     public R communityAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) {
         Long communityId = eldersAuthTypeQueryDTO.getCommunityId();
         List<SysConfDO> confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
-            .eq(SysConfDO::getCommunityId, communityId).orderByDesc(SysConfDO::getCreateAt));
+            .eq(SysConfDO::getCommunityId, communityId).eq(SysConfDO::getCode,"ELDER_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt));
         if (confDOList == null || confDOList.size() == 0) {
             SysConfDO sysConfDO = new SysConfDO();
-            sysConfDO.setCode("ELDER_AUTH_TYPE");
+            sysConfDO.setCode("ELDER_AUTH_TYPE_" + communityId);
             sysConfDO.setName("高龄认证类型");
             sysConfDO.setValue(2 + "");// 核验类型(1.视频认证 2.人脸核验)
             sysConfDO.setDescription("高龄认证默认添加的核验类型");
@@ -503,6 +510,7 @@
             pageEldersAuthElderlyDTO));
     }
 
+    @Override
     public R getAuthHistoryExport(PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO) {
         Date startTime =
             DateUtils.getYearMonthStart(pageEldersAuthElderlyDTO.getYear(), pageEldersAuthElderlyDTO.getMonth());
@@ -523,4 +531,155 @@
         });
         return R.ok(authHistoryExcelVOS);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R timedTaskEldersAuthJobHandler(){
+
+        Date nowDate = new Date();
+        //查询所有启用中社区
+        List<ComActDO> actList = comActDAO.selectList(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getState,0));
+
+        actList.forEach(act -> {
+            //查询社区老人认证统计信息,并存储到数据库中
+            Map<String,Object> resultMap = this.baseMapper.getEldersAuthStatistics(act.getCommunityId());
+            if(resultMap != null){
+                ComEldersAuthStatisticsDO authStatisticsDO = new ComEldersAuthStatisticsDO();
+                authStatisticsDO.setCommunityId(act.getCommunityId());
+                authStatisticsDO.setMonth(DateUtils.getMonth(nowDate) + 1);
+                authStatisticsDO.setYear(DateUtils.getYear(nowDate));
+                authStatisticsDO.setCreateAt(nowDate);
+                authStatisticsDO.setSum(Integer.parseInt(resultMap.get("oldCount").toString()));
+                authStatisticsDO.setNoAuthSum(Integer.parseInt(resultMap.get("noCount").toString()));
+                authStatisticsDO.setAuthSum(Integer.parseInt(resultMap.get("yesCount").toString()));
+                comEldersAuthStatisticsMapper.insert(authStatisticsDO);
+            }
+        });
+        //重置所有人的认证状态
+        comEldersAuthUserMapper.updateAuthStatus();
+        return R.ok();
+    }
+
+    /**
+     * 检测上月所有视频认证记录,取最后一条记录为认证成功记录
+     * @return  执行结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R timedTaskEldersRecordAuthJobHandler(){
+        Date nowDate = new Date();
+        //查询所有启用中社区
+        List<ComActDO> actList = comActDAO.selectList(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getState,0));
+
+        actList.forEach(act -> {
+            //查询社区上月所有视频认证
+            List<ComEldersAuthHistoryVO> authList = eldersAuthDAO.getEldersAuthRecords(act.getCommunityId());
+            authList.forEach(auth -> {
+                if(auth.getUserId() != null){
+                    ComEldersAuthHistoryRecordDO authHistoryRecordDO = new ComEldersAuthHistoryRecordDO();
+                    authHistoryRecordDO.setCommunityId(auth.getCommunityId());
+                    authHistoryRecordDO.setCreateAt(auth.getCreateAt());
+                    authHistoryRecordDO.setAuthId(auth.getId());
+                    authHistoryRecordDO.setUserId(auth.getUserId());
+                    authHistoryRecordDO.setBrithday(auth.getBirthday());
+                    authHistoryRecordDO.setDomicile(auth.getDomicile());
+                    authHistoryRecordDO.setIdCard(auth.getIdCard());
+                    authHistoryRecordDO.setName(auth.getName());
+                    authHistoryRecordDO.setIsAuth(1);
+                    try {
+                        Integer age = IdcardUtil.getAgeByIdCard(auth.getIdCard());
+                        authHistoryRecordDO.setAge(age);
+                    }catch (Exception e){
+                        log.error("年龄转换失败");
+                    }
+                    comEldersAuthHistoryRecordMapper.insert(authHistoryRecordDO);
+                }
+            });
+        });
+        return R.ok();
+    }
+
+    @Override
+    public R setAuthType(Long communityId, Integer type){
+        List<SysConfDO> authConf =
+                sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCommunityId, communityId)
+                        .eq(SysConfDO::getCode, "ELDER_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt));
+        if (authConf != null && authConf.size() > 0) {
+            SysConfDO first = authConf.get(0);
+            first.setValue(type + "");
+            int updated = sysConfDao.updateById(first);
+            if (updated == 1) {
+                return R.ok();
+            }
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R getAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO){
+        Long communityId = eldersAuthTypeQueryDTO.getCommunityId();
+        List<SysConfDO> confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
+                .eq(SysConfDO::getCommunityId, communityId).eq(SysConfDO::getCode,"ELDER_AUTH_TYPE_" + communityId).orderByDesc(SysConfDO::getCreateAt));
+        if (confDOList == null || confDOList.size() == 0) {
+            SysConfDO sysConfDO = new SysConfDO();
+            sysConfDO.setCode("ELDER_AUTH_TYPE_" + communityId);
+            sysConfDO.setName("高龄认证类型");
+            sysConfDO.setValue(2 + "");// 核验类型(1.视频认证 2.人脸核验)
+            sysConfDO.setDescription("高龄认证默认添加的核验类型");
+            sysConfDO.setCommunityId(communityId);
+            sysConfDO.setCreateBy(eldersAuthTypeQueryDTO.getUserId());
+            int inserted = sysConfDao.insert(sysConfDO);
+            if (inserted != 1) {
+                throw new ServiceException("添加高龄认证默认添加的核验类型失败");
+            }
+            confDOList = sysConfDao.selectList(new LambdaQueryWrapper<SysConfDO>()
+                    .eq(SysConfDO::getCommunityId, communityId)
+                    .orderByDesc(SysConfDO::getCreateAt));
+        }
+        if (confDOList != null && confDOList.size() > 0) {
+            SysConfDO latest = confDOList.get(0);
+            SysConfVO sysConfVO = new SysConfVO();
+            BeanUtils.copyProperties(latest, sysConfVO);
+            return R.ok(sysConfVO.getValue());
+        }
+        return R.ok();
+    }
+
+    /**
+     * 高龄认证统计-分页查询
+     * @param pageElderAuthStatisticDTO 请求参数
+     * @return  高龄认证统计列表
+     */
+    @Override
+    public R pageAuthStatisticAdmin(PageElderAuthStatisticDTO pageElderAuthStatisticDTO){
+        return R.ok(comEldersAuthHistoryRecordMapper.pageAuthStatisticAdmin(new Page(pageElderAuthStatisticDTO.getPageNum(),pageElderAuthStatisticDTO.getPageSize()),pageElderAuthStatisticDTO));
+    }
+
+    /**
+     * 高龄认证统计-标记
+     * @param signElderAuthStatisticDTO 请求参数
+     * @return  标记结果
+     */
+    @Override
+    public R signAuthStatisticAdmin(SignElderAuthStatisticDTO signElderAuthStatisticDTO){
+        ComEldersAuthHistoryRecordDO authHistoryRecordDO = comEldersAuthHistoryRecordMapper.selectById(signElderAuthStatisticDTO.getId());
+        if(authHistoryRecordDO == null){
+            return R.fail("未查询到该记录");
+        }
+        authHistoryRecordDO.setMark(signElderAuthStatisticDTO.getMark());
+        if(comEldersAuthHistoryRecordMapper.updateById(authHistoryRecordDO) > 0){
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 高龄认证统计-统计表头数据
+     * @param statisticHeaderDTO 请求参数
+     * @return  统计表头数据
+     */
+    @Override
+    public R getAuthHeaderStatisticAdmin(ElderAuthStatisticHeaderDTO statisticHeaderDTO){
+        return R.ok(comEldersAuthHistoryRecordMapper.getAuthHeaderStatisticAdmin(statisticHeaderDTO));
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/SysConfServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/SysConfServiceImpl.java
index 34ff0c0..0404aaf 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/SysConfServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/SysConfServiceImpl.java
@@ -1,13 +1,18 @@
 package com.panzhihua.service_community.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.constants.NeighborCircleConstants;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
 import com.panzhihua.service_community.dao.SysConfMapper;
 import com.panzhihua.service_community.model.dos.SysConfDO;
 import com.panzhihua.service_community.service.SysConfService;
 
 import lombok.extern.slf4j.Slf4j;
+
+import java.util.Date;
 
 /**
  * @auther lyq
@@ -18,4 +23,55 @@
 @Service
 public class SysConfServiceImpl extends ServiceImpl<SysConfMapper, SysConfDO> implements SysConfService {
 
+    /**
+     * 根据系统code以及社区id查询配置表value值
+     * @param key   系统code
+     * @param communityId   社区id
+     * @return  系统配置value值
+     */
+    @Override
+    public R getSysConfValue(String key, Long communityId){
+        return R.ok(this.baseMapper.getSysConfValue(key,communityId));
+    }
+
+    /**
+     * 新增系统code配置数据
+     * @param key   系统code
+     * @param communityId   社区id
+     * @return  新增结果
+     */
+    @Override
+    public R addSysConfValue(String key, Long communityId,String name,String value){
+        SysConfDO confDO = new SysConfDO();
+        confDO.setCode(key);
+        confDO.setCreateAt(new Date());
+        confDO.setCommunityId(communityId);
+        confDO.setValue(value);
+        confDO.setName(name);
+        if(this.baseMapper.insert(confDO) > 0){
+            return R.ok(confDO.getValue());
+        }else{
+            return R.fail();
+        }
+    }
+
+    @Override
+    public R editSysConfValue(Long communityId, Integer status){
+        String key = NeighborCircleConstants.NEIGHBOR_CIRCLE_AUTO_EXAMINE;
+
+        SysConfDO confDO = this.baseMapper.selectOne(new QueryWrapper<SysConfDO>().lambda().eq(SysConfDO::getCommunityId,communityId)
+                .eq(SysConfDO::getCode,key + communityId));
+        if(confDO == null){
+            return R.fail("未查询到该系统配置");
+        }
+        confDO.setCommunityId(communityId);
+        confDO.setCode(key + communityId);
+        confDO.setValue(status+"");
+        if(this.baseMapper.updateById(confDO) > 0){
+            return R.ok(confDO.getValue());
+        }else{
+            return R.fail();
+        }
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActEvaluateMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActEvaluateMapper.xml
index 62d80ce..62b9541 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActEvaluateMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActEvaluateMapper.xml
@@ -38,13 +38,12 @@
 
                 WHEN su.is_partymember = 1 THEN
                     '党员'
-                WHEN caas.is_volunteer = 1 THEN
+                WHEN caae.is_volunteer = 1 THEN
                     '志愿者' ELSE '居民'
                 END identity
 
         FROM
             com_act_act_evaluate caae
-            LEFT JOIN com_act_act_sign caas ON caae.activity_id = caas.activity_id
             LEFT JOIN sys_user su ON caae.user_id = su.user_id
         where caae.activity_id = #{comActActEvaluateVO.activityId}
         <if test="comActActEvaluateVO.phone != null and comActActEvaluateVO.phone !=''">
@@ -53,7 +52,7 @@
         <if test="comActActEvaluateVO.name != null and comActActEvaluateVO.name !=''">
             AND su.`name` = #{comActActEvaluateVO.name}
         </if>
-        <if test="comActActEvaluateVO.starLevel != null">
+        <if test="comActActEvaluateVO.starLevel != null and comActActEvaluateVO.starLevel != 0">
             AND caae.star_level = #{comActActEvaluateVO.starLevel}
         </if>
         <if test="comActActEvaluateVO.createAt != null">
@@ -73,13 +72,12 @@
 
         WHEN su.is_partymember = 1 THEN
         '党员'
-        WHEN caas.is_volunteer = 1 THEN
+        WHEN caae.is_volunteer = 1 THEN
         '志愿者' ELSE '居民'
         END identity
 
         FROM
         com_act_act_evaluate caae
-        LEFT JOIN com_act_act_sign caas ON caae.activity_id = caas.activity_id
         LEFT JOIN sys_user su ON caae.user_id = su.user_id
         where caae.activity_id = #{comActActEvaluateVO.activityId}
         <if test="comActActEvaluateVO.phone != null and comActActEvaluateVO.phone !=''">
@@ -88,7 +86,7 @@
         <if test="comActActEvaluateVO.name != null and comActActEvaluateVO.name !=''">
             AND su.`name` = #{comActActEvaluateVO.name}
         </if>
-        <if test="comActActEvaluateVO.starLevel != null">
+        <if test="comActActEvaluateVO.starLevel != null and comActActEvaluateVO.starLevel != 0">
             AND caae.star_level = #{comActActEvaluateVO.starLevel}
         </if>
         <if test="comActActEvaluateVO.createAt != null">
@@ -96,4 +94,25 @@
         </if>
         order by caae.create_at desc
     </select>
+
+    <select id="getEvaluateListPage" resultType="com.panzhihua.common.model.vos.community.ComActActEvaluateVO">
+        SELECT
+            caae.*,su.`name`,su.nick_name,su.image_url
+        FROM
+            com_act_act_evaluate AS caae
+            LEFT JOIN sys_user AS su ON su.user_id = caae.user_id
+        where caae.activity_id = #{activityId}
+        order by caae.create_at desc
+    </select>
+
+    <select id="getEvaluateListByUserId" resultType="com.panzhihua.common.model.vos.community.ComActActEvaluateVO">
+        SELECT
+            caae.*,su.`name`,su.nick_name,su.image_url
+        FROM
+            com_act_act_evaluate AS caae
+            LEFT JOIN sys_user AS su ON su.user_id = caae.user_id
+        where caae.activity_id = #{activityId} and caae.user_id = #{userId}
+        order by caae.create_at desc
+        limit 1
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActRegistMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActRegistMapper.xml
index ca579a7..ca8c565 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActRegistMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActRegistMapper.xml
@@ -32,13 +32,12 @@
 
         WHEN su.is_partymember = 1 THEN
         '党员'
-        WHEN caas.is_volunteer = 1 THEN
+        WHEN caar.is_volunteer = 1 THEN
         '志愿者' ELSE '居民'
         END identity
 
         FROM
         com_act_act_regist caar
-        LEFT JOIN com_act_act_sign caas ON caar.activity_id = caas.activity_id
         LEFT JOIN sys_user su ON caar.user_id = su.user_id
         where caar.activity_id = #{comActActRegistVO.activityId}
         <if test="comActActRegistVO.phone != null and comActActRegistVO.phone !=''">
@@ -48,7 +47,7 @@
             AND su.`name` = #{comActActRegistVO.name}
         </if>
         <if test="comActActRegistVO.tags != null and comActActRegistVO.tags !=''">
-            AND su.tags like ('%', #{comActActRegistVO.tags}, '%')
+            AND su.tags like concat ('%', #{comActActRegistVO.tags}, '%')
         </if>
         <if test="comActActRegistVO.createAt != null">
             AND caar.create_at = #{comActActRegistVO.createAt}
@@ -66,13 +65,12 @@
 
         WHEN su.is_partymember = 1 THEN
         '党员'
-        WHEN caas.is_volunteer = 1 THEN
+        WHEN caar.is_volunteer = 1 THEN
         '志愿者' ELSE '居民'
         END identity
 
         FROM
         com_act_act_regist caar
-        LEFT JOIN com_act_act_sign caas ON caar.activity_id = caas.activity_id
         LEFT JOIN sys_user su ON caar.user_id = su.user_id
         where caar.activity_id = #{comActActRegistVO.activityId}
         <if test="comActActRegistVO.phone != null and comActActRegistVO.phone !=''">
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml
new file mode 100644
index 0000000..d511f6c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComActDiscussCommentDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActDiscussCommentDO">
+        <id column="id" property="id"/>
+        <result column="discuss_id" property="discussId"/>
+        <result column="comment" property="comment"/>
+        <result column="is_topping" property="isTopping"/>
+        <result column="create_at" property="createAt"/>
+        <result column="is_author" property="isAuthor"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="user_id" property="userId"/>
+        <result column="reply_num" property="replyNum"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, discuss_id, comment, is_topping, create_at, is_author, parent_id, user_id, reply_num
+    </sql>
+
+    <select id="getDiscussCommentList" parameterType="com.panzhihua.common.model.dtos.community.PageComActDiscussCommentDTO"
+            resultType="com.panzhihua.common.model.vos.community.ComActDiscussCommentVO">
+        SELECT
+            cadc.id,
+            cadc.`comment`,
+            cadc.`is_author`,
+            su.`image_url`,
+            IFNULL( su.`name`, su.nick_name ) AS userNameBack,
+            cadc.create_at
+        FROM
+            com_act_discuss_comment AS cadc
+            LEFT JOIN sys_user AS su ON su.user_id = cadc.user_id
+            where cadc.parent_id = #{id} and cadc.is_del = 2
+        order by cadc.create_at desc
+    </select>
+    <select id="selectChilds" resultType="com.panzhihua.common.model.vos.community.ComActDiscussCommentVO">
+        SELECT
+            u.`name` userName,
+            IFNULL(u.`nick_name`,'社区管理员') AS userNickName,
+            u.`image_url`,
+            u.phone,
+            c.`comment`,
+            c.`parent_id`,
+            c.`is_author`,
+            c.`is_topping`,
+            COUNT( cu.id ) num,
+            c.create_at,
+            c.id
+            FROM
+            com_act_discuss_comment c
+            JOIN sys_user u ON c.user_id = u.user_id
+            LEFT JOIN com_act_discuss_comment_user cu ON c.id=cu.disscuss_comment_id
+            WHERE
+            FIND_IN_SET(
+            c.id,
+            getChildren ( #{parentId} )) AND c.parent_id != 0 AND c.is_del = 2
+            GROUP BY c.id
+            ORDER BY create_at desc
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentUserDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentUserDOMapper.xml
new file mode 100644
index 0000000..51ea6f5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentUserDOMapper.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComActDiscussCommentUserDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActDiscussCommentUserDO">
+        <id column="id" property="id"/>
+        <result column="disscuss_comment_id" property="disscussCommentId"/>
+        <result column="user_id" property="userId"/>
+        <result column="create_at" property="createAt"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, disscuss_comment_id, user_id, create_at
+    </sql>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussDOMapper.xml
new file mode 100644
index 0000000..4afca94
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussDOMapper.xml
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComActDiscussDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActDiscussDO">
+        <id column="id" property="id"/>
+        <result column="discuss_subject" property="discussSubject"/>
+        <result column="type" property="type"/>
+        <result column="photo_pah" property="photoPah"/>
+        <result column="address" property="address"/>
+        <result column="user_id" property="userId"/>
+        <result column="community_id" property="communityId"/>
+        <result column="create_at" property="createAt"/>
+        <result column="discuss_option" property="discussOption"/>
+        <result column="vote_title" property="voteTitle"/>
+        <result column="is_repeat" property="isRepeat"/>
+        <result column="count" property="count"/>
+        <result column="img_width" property="imgWidth"/>
+        <result column="img_height" property="imgHeight"/>
+        <result column="start_time" property="startTime"/>
+        <result column="end_time" property="endTime"/>
+        <result column="comment_num" property="commentNum"/>
+        <result column="fabulous_num" property="fabulousNum"/>
+        <result column="views_num" property="viewsNum"/>
+        <result column="join_num" property="joinNum"/>
+        <result column="status" property="status"/>
+        <result column="is_del" property="isDel"/>
+        <result column="publish_result" property="publishResult"/>
+        <result column="publish_at" property="publishAt"/>
+        <result column="release_at" property="releaseAt"/>
+        <result column="update_at" property="updateAt"/>
+        <result column="publish_by" property="publishBy"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, discuss_subject, type, photo_pah, address, user_id, community_id, create_at, discuss_option, vote_title, is_repeat, count, img_width, img_height, start_time, end_time, comment_num, fabulous_num, views_num, join_num, status, is_del, publish_result, publish_at, release_at, update_at, publish_by
+    </sql>
+    <update id="updateStatusById">
+        UPDATE `com_act_discuss` SET status = #{status}, update_at = NOW() WHERE id = #{discussId}
+    </update>
+    <update id="incrCommentAndJoinNumById">
+        UPDATE `com_act_discuss`
+        SET comment_num = comment_num + 1,
+        <if test="isFirstComment">
+            join_num = join_num + 1,
+        </if>
+        update_at = NOW() WHERE id = #{discussId}
+    </update>
+    <update id="incrOrDecrFabulousNumByType">
+        UPDATE `com_act_discuss`
+        SET fabulous_num = IF(IF(#{isIncr},fabulous_num + 1,fabulous_num - 1) &gt;= 0,IF(#{isIncr},fabulous_num + 1,fabulous_num - 1),0), update_at = NOW()
+        WHERE id = #{discussId}
+    </update>
+    <update id="batchUpdateViewNum" parameterType="java.util.Map">
+        UPDATE `com_act_discuss` SET views_num = CASE id
+            <foreach collection="needDealMap.entrySet()" item="value" index="key">
+                WHEN #{key} THEN #{value}
+            </foreach>
+            END,update_at = NOW()
+        WHERE id = CASE id
+            <foreach collection="needDealMap.entrySet()" index="key">
+                WHEN #{key} THEN #{key}
+            </foreach>
+            END
+    </update>
+
+    <select id="pageDiscuss" parameterType="com.panzhihua.common.model.dtos.community.PageComActDiscussDTO"
+            resultType="com.panzhihua.common.model.vos.community.ComActDiscussVO">
+        SELECT
+        t.*
+        FROM
+        (
+        SELECT
+        d.id,
+        d.`discuss_subject`,
+        d.type,
+        COUNT( DISTINCT c.id ) commentNum,
+        u.NAME userName,
+        u.nick_name userNickName,
+        d.create_at
+        FROM
+        com_act_discuss d
+        JOIN sys_user u ON d.user_id = u.user_id
+        LEFT JOIN com_act_discuss_comment c ON d.id = c.discuss_id
+        WHERE
+        d.community_id = #{pageComActDiscussDTO.communityId} and d.is_del = 2
+        <if test = 'pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != &quot;&quot;' >
+            AND d.`discuss_subject` LIKE concat(#{pageComActDiscussDTO.subject}, '%' )
+        </if>
+        <if test = 'pageComActDiscussDTO.begin != null ' >
+            AND d.create_at BETWEEN #{pageComActDiscussDTO.begin}
+
+            AND #{pageComActDiscussDTO.end}
+        </if>
+        <if test="pageComActDiscussDTO.status != null">
+            and d.status = #{pageComActDiscussDTO.status}
+        </if>
+        GROUP BY   d.id  )t
+        order by t.create_at desc
+    </select>
+
+    <select id="pageDiscussAdmin" parameterType="com.panzhihua.common.model.dtos.community.PageComActDiscussDTO"
+            resultType="com.panzhihua.common.model.vos.community.ComActDiscussVO">
+        SELECT
+        d.id,
+        d.`discuss_subject`,
+        d.type,
+        d.comment_num,
+        d.fabulous_num as signNum,
+        d.views_num,
+        d.status,
+        u.NAME userName,
+        u.nick_name userNickName,
+        d.create_at
+        FROM
+        com_act_discuss d
+        JOIN sys_user u ON d.user_id = u.user_id
+        WHERE
+        d.community_id = #{pageComActDiscussDTO.communityId} and d.is_del = 2
+        <if test = 'pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != &quot;&quot;' >
+            AND d.`discuss_subject` LIKE concat(#{pageComActDiscussDTO.subject}, '%' )
+        </if>
+        <if test = 'pageComActDiscussDTO.begin != null ' >
+            AND d.create_at BETWEEN #{pageComActDiscussDTO.begin}
+            AND #{pageComActDiscussDTO.end}
+        </if>
+        <if test="pageComActDiscussDTO.status != null">
+            and d.status = #{pageComActDiscussDTO.status}
+        </if>
+        <if test="pageComActDiscussDTO.keyWord != null and pageComActDiscussDTO.keyWord != &quot;&quot;">
+            and (d.`discuss_subject` LIKE concat(#{pageComActDiscussDTO.keyWord}, '%' ) or
+            u.`name` LIKE concat(#{pageComActDiscussDTO.keyWord}, '%' ))
+        </if>
+        order by d.create_at desc
+    </select>
+    <select id="pageDiscussCommentApplets" resultType="com.panzhihua.common.model.vos.community.ComActDiscussCommentVO">
+        SELECT * FROM (
+            SELECT u.`name` userName, IFNULL(u.`nick_name`, '社区管理员') AS userNickName, u.`image_url`, u.phone,
+                u.type AS userType, c.`comment`, c.`parent_id`, c.`is_author`, c.`is_topping`, COUNT( cu.id ) num, c.create_at, c.id
+            FROM com_act_discuss_comment c
+            JOIN sys_user u ON c.user_id = u.user_id
+            JOIN com_act_discuss d ON c.discuss_id = d.id
+                <if test='pageComActDiscussCommentDTO.name != null and pageComActDiscussCommentDTO.name.trim() != &quot;&quot;'>
+                    AND u.`name` LIKE concat( #{pageComActDiscussCommentDTO.name}, '%' )
+                </if>
+                <if test='pageComActDiscussCommentDTO.account != null and pageComActDiscussCommentDTO.account.trim() != &quot;&quot;'>
+                    AND u.phone LIKE concat( #{pageComActDiscussCommentDTO.account}, '%' )
+                </if>
+            LEFT JOIN com_act_discuss_comment_user cu ON c.id = cu.disscuss_comment_id
+            WHERE c.discuss_id=#{pageComActDiscussCommentDTO.id} AND parent_id=0 AND c.is_del = 2
+                <if test='pageComActDiscussCommentDTO.comment != null and pageComActDiscussCommentDTO.comment.trim() != &quot;&quot;'>
+                    AND c.`comment` LIKE concat( '%', #{pageComActDiscussCommentDTO.comment}, '%' )
+                </if>
+            GROUP BY c.id
+        ) t ORDER BY t.is_topping DESC , t.create_at DESC
+    </select>
+    <select id="pageDiscussApplets" resultType="com.panzhihua.common.model.vos.community.ComActDiscussVO">
+        SELECT t.* FROM (
+            SELECT d.id, d.vote_title, if(d.address IS NULL OR d.address='null',a.name,d.address )address, d.photo_pah,
+                d.`discuss_subject`, d.type, d.end_time, d.status, d.views_num, d.join_num, d.fabulous_num AS signNum,
+                d.comment_num AS commentNum, d.release_at, d.img_width, d.img_height, d.is_repeat, d.count, u.type AS userType, if(u.type=1,u.name,a.name) userName,
+                if(u.type=1,u.nick_name,a.name) userNickName,
+                <if test='pageComActDiscussDTO.loginUserId != null '>
+                    if(du.id IS NOT NULL,1,0) haveSign, if(ou.id IS NOT NULL,1,0) haveVote,
+                </if>
+                u.image_url, d.create_at
+            FROM com_act_discuss d
+            JOIN sys_user u ON d.user_id = u.user_id
+            JOIN com_act a ON d.community_id = a.community_id
+            LEFT JOIN com_act_discuss_option do ON d.id = do.discuss_id
+            LEFT JOIN com_act_discuss_user du ON d.id = du.discuss_id
+            <if test='pageComActDiscussDTO.loginUserId != null '>
+                LEFT JOIN com_act_discuss_option_user ou ON do.id=ou.discuss_option_id AND ou.user_id=#{pageComActDiscussDTO.loginUserId}
+            </if>
+            WHERE d.community_id=#{pageComActDiscussDTO.communityId} AND d.is_del = 2
+                <if test='pageComActDiscussDTO.type != null '>
+                    AND d.`type` = #{pageComActDiscussDTO.type}
+                </if>
+                <if test='pageComActDiscussDTO.subject != null and pageComActDiscussDTO.subject.trim() != &quot;&quot;'>
+                    AND d.`discuss_subject` LIKE concat( #{pageComActDiscussDTO.subject}, '%' )
+                </if>
+                <if test='pageComActDiscussDTO.userId != null and pageComActDiscussDTO.userId !=0 '>
+                    AND d.`user_id` = #{pageComActDiscussDTO.userId}
+                </if>
+                <if test='pageComActDiscussDTO.begin != null '>
+                    AND d.create_at BETWEEN #{pageComActDiscussDTO.begin}  AND #{pageComActDiscussDTO.end}
+                </if>
+                <if test='pageComActDiscussDTO.displayStatus != null and pageComActDiscussDTO.displayStatus == 1'>
+                    AND d.`end_time` &gt; now()
+                </if>
+                <if test='pageComActDiscussDTO.displayStatus != null and pageComActDiscussDTO.displayStatus == 2'>
+                    AND d.`end_time` &lt; now()
+                </if>
+            GROUP BY d.id
+        ) t ORDER BY t.create_at DESC
+    </select>
+
+    <update id="addCommentCount">
+        update com_act_discuss set comment_num = comment_num + #{num} where id = #{discussId}
+    </update>
+
+    <select id="pageDiscussCommentAdmin" parameterType="com.panzhihua.common.model.dtos.community.PageComActDiscussCommentDTO"
+            resultType="com.panzhihua.common.model.vos.community.ComActDiscussCommentVO">
+        SELECT
+            *
+        FROM
+            (
+            SELECT
+                u.`name` userName,
+                u.nick_name userNickName,
+                u.image_url,
+                u.phone,
+                c.`comment`,
+                c.`parent_id`,
+                COUNT( DISTINCT cu.id ) num,
+                COUNT( c1.id ) replyNum,
+                c.create_at,
+                c.is_topping,
+                c.id
+            FROM
+                com_act_discuss_comment c
+                JOIN sys_user u ON c.user_id = u.user_id
+                LEFT JOIN com_act_discuss_comment_user cu ON c.id = cu.disscuss_comment_id
+                LEFT JOIN com_act_discuss_comment c1 ON c1.parent_id = c.id and c1.is_del = 2
+            WHERE
+                c.discuss_id = #{pageComActDiscussCommentDTO.id} and c.parent_id = 0 and c.is_del = 2
+            <if test = 'pageComActDiscussCommentDTO.keyWord != null and pageComActDiscussCommentDTO.keyWord.trim() != &quot;&quot;' >
+                AND (c.`comment` LIKE concat( '%', #{pageComActDiscussCommentDTO.keyWord  }, '%' ) or
+                u.`name` LIKE concat(#{pageComActDiscussCommentDTO.keyWord}, '%' ) or
+                u.phone LIKE concat(#{pageComActDiscussCommentDTO.keyWord}, '%' ))
+            </if>
+            GROUP BY
+                c.id
+            ) t
+        ORDER BY
+            t.is_topping DESC,t.create_at DESC
+    </select>
+
+    <select id="getDiscussCommentReplyList" resultType="com.panzhihua.common.model.vos.community.ComActDiscussCommentVO">
+        SELECT
+            cadc.id,
+            cadc.discuss_id,
+            cadc.`comment`,
+            cadc.create_at,
+            cadc.is_author,
+            cadc.user_id,
+            IFNULL( su.`name`, su.nick_name ) AS userName
+        FROM
+            com_act_discuss_comment AS cadc
+            LEFT JOIN sys_user AS su ON su.user_id = cadc.user_id
+        WHERE
+            cadc.is_del = 2
+            AND cadc.parent_id = #{commentId}
+        order by cadc.create_at desc
+        limit 10
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionDOMapper.xml
new file mode 100644
index 0000000..0c1c5af
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionDOMapper.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComActDiscussOptionDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActDiscussOptionDO">
+        <id column="id" property="id"/>
+        <result column="discuss_id" property="discussId"/>
+        <result column="option_content" property="optionContent"/>
+        <result column="create_at" property="createAt"/>
+        <result column="option_url" property="optionUrl"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, discuss_id, option_content, create_at, option_url
+    </sql>
+
+    <select id="getDiscussOptionList" resultType="com.panzhihua.common.model.vos.community.ComActDiscussOptionVO">
+        SELECT
+            cado.id,
+            cado.option_content,
+            cado.option_url,
+            ( SELECT count( id ) FROM com_act_discuss_option_user WHERE discuss_option_id = cado.id ) AS num,
+            ( SELECT count( id ) FROM com_act_discuss_option_user WHERE discuss_id = cado.discuss_id ) AS allNum
+        FROM
+            com_act_discuss_option AS cado
+        WHERE
+            discuss_id = #{discussId}
+        ORDER BY
+            num DESC
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionUserDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionUserDOMapper.xml
new file mode 100644
index 0000000..af8ce9d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionUserDOMapper.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComActDiscussOptionUserDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActDiscussOptionUserDO">
+        <id column="id" property="id"/>
+        <result column="discuss_option_id" property="discussOptionId"/>
+        <result column="user_id" property="userId"/>
+        <result column="create_at" property="createAt"/>
+        <result column="discuss_id" property="discussId"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, discuss_option_id, user_id, create_at, discuss_id
+    </sql>
+    <insert id="batchInsert" parameterType="java.util.List">
+        INSERT INTO `com_act_discuss_option_user`(discuss_option_id,user_id,create_at,discuss_id)
+        VALUES
+        <foreach collection="comActDiscussOptionUserDOList" item="item" index="index" separator="," >
+            (#{item.discussOptionId}, #{item.userId}, now(), #{item.discussId})
+        </foreach>
+    </insert>
+    <select id="selectVotedVotesInToday" resultType="java.lang.Integer">
+        SELECT COUNT(1) FROM `com_act_discuss_option_user`
+        WHERE discuss_id = #{discussId} AND user_id = #{userId} AND DATE(create_at) &gt;= DATE(now())
+        AND DATE(create_at) &lt; DATE_ADD(DATE(now()),INTERVAL 1 DAY)
+    </select>
+    <select id="selectVotedRecords" resultType="com.panzhihua.common.model.vos.community.ComActDiscussOptionUserVO">
+        SELECT
+            cadou.*,
+            su.nick_name,
+            su.image_url
+        FROM `com_act_discuss_option_user` cadou
+        LEFT JOIN `sys_user` su ON cadou.user_id = su.user_id
+        WHERE cadou.discuss_id = #{discussId} limit 6
+    </select>
+    <select id="selectVotedPersonNum" resultType="java.lang.Integer">
+        SELECT COUNT(DISTINCT `user_id`)
+        FROM `com_act_discuss_option_user`
+        WHERE discuss_id = #{discussId}
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussUserDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussUserDOMapper.xml
new file mode 100644
index 0000000..0e43f41
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussUserDOMapper.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComActDiscussUserDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActDiscussUserDO">
+        <id column="id" property="id"/>
+        <result column="discuss_id" property="discussId"/>
+        <result column="user_id" property="userId"/>
+        <result column="create_at" property="createAt"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, discuss_id, user_id, create_at
+    </sql>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoDOMapper.xml
index 3ea3393..29fcf81 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoDOMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoDOMapper.xml
@@ -121,7 +121,7 @@
         SELECT
             count( id ) AS examineNum,
             ( SELECT count( id ) FROM com_act_easy_photo WHERE `status` = 2 AND community_id = #{communityId} AND del_tag = 0 ) AS verificationNum,
-            ( SELECT count( id ) FROM com_act_easy_photo WHERE `status` = 3 AND community_id = #{communityId} AND del_tag = 0 ) AS rejectNum,
+            ( SELECT count( id ) FROM com_act_easy_photo WHERE `status` in (1,2,4) AND `is_publicity` = 1 AND community_id = #{communityId} AND del_tag = 0 ) AS rejectNum,
             ( SELECT count( id ) FROM com_act_easy_photo WHERE `status` = 4 AND community_id = #{communityId} AND del_tag = 0 ) AS completeNum,
             (select count(id) from com_act_easy_photo where `status` in (2,4) AND community_id = #{communityId} and del_tag = 0 and activity_type = 1) as yzAllTotal,
             (select count(id) from com_act_easy_photo where `status` in (2,4) AND community_id = #{communityId} and del_tag = 0 and activity_type = 1 and examine_at between timestamp(date_add(curdate(), interval - 0 day)) and now()) as yzDayTotal,
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishDOMapper.xml
new file mode 100644
index 0000000..f3db469
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishDOMapper.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComActMicroWishDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActMicroWishDO">
+        <id column="id" property="id" />
+        <result column="sponsor_id" property="sponsorId" />
+        <result column="sponsor_phone" property="sponsorPhone" />
+        <result column="wish_name" property="wishName" />
+        <result column="status" property="status" />
+        <result column="form" property="form" />
+        <result column="responsible_id" property="responsibleId" />
+        <result column="create_at" property="createAt" />
+        <result column="examine_at" property="examineAt" />
+        <result column="distribution_at" property="distributionAt" />
+        <result column="feedback_at" property="feedbackAt" />
+        <result column="evaluate_at" property="evaluateAt" />
+        <result column="score" property="score" />
+        <result column="detail" property="detail" />
+        <result column="photo_path_list" property="photoPathList" />
+        <result column="community_id" property="communityId" />
+        <result column="evaluate" property="evaluate" />
+        <result column="finish_at" property="finishAt" />
+        <result column="finish_photo_path_list" property="finishPhotoPathList" />
+        <result column="finish" property="finish" />
+        <result column="reject_reason" property="rejectReason" />
+        <result column="feedback" property="feedback" />
+        <result column="feedback_photo_path_list" property="feedbackPhotoPathList" />
+        <result column="aim_num" property="aimNum" />
+        <result column="img_width" property="imgWidth" />
+        <result column="img_height" property="imgHeight" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, sponsor_id, sponsor_phone, wish_name, status, form, responsible_id, create_at, examine_at, distribution_at, feedback_at, evaluate_at, score, detail, photo_path_list, community_id, evaluate, finish_at, finish_photo_path_list, finish, reject_reason, feedback, feedback_photo_path_list, aim_num, img_width, img_height
+    </sql>
+
+    <select id="pageMicroWishApplets" parameterType="com.panzhihua.common.model.vos.community.ComActMicroWishVO"
+            resultType="com.panzhihua.common.model.vos.community.ComActMicroWishVO">
+        SELECT
+        w.id,
+        u.name sponsor_name,
+        u.nick_name userNickName,
+        u.image_url ,
+        w.sponsor_phone,
+        w.wish_name,
+        w.`status`,
+        w.`feedback_at`,
+        w.`examine_at`,
+        w.`distribution_at`,
+        w.`evaluate_at`,
+        w.`photo_path_list`,
+        count(wu.id)star_num,
+        w.`detail`,
+        w.form,
+        w.reject_reason,
+        su.`name` responsible_name,
+        w.score,
+        w.img_width,
+        w.finish_at,
+        w.aim_num,
+        w.img_height,
+        w.create_at
+        FROM
+        com_act_micro_wish w
+        left join com_act_micro_wish_user wu on w.id=wu.micro_wish_id
+        left JOIN sys_user u ON w.sponsor_id = u.user_id
+        left JOIN com_pb_service_team su ON w.responsible_id = su.id
+        <where>
+            <if test='comActMicroWishVO.communityId != null and comActMicroWishVO.communityId != 0'>
+                and w.community_id=#{comActMicroWishVO.communityId}
+            </if>
+            <if test='comActMicroWishVO.status == 3  and comActMicroWishVO.isApplets != null and comActMicroWishVO.isApplets != 0'>
+                AND w.`status` in (2,3)
+            </if>
+            <if test='comActMicroWishVO.status == 6  and comActMicroWishVO.isApplets != null and comActMicroWishVO.isApplets != 0'>
+                AND w.`status` in (5,6)
+            </if>
+            <if test='comActMicroWishVO.status == 7  and comActMicroWishVO.isApplets != null and comActMicroWishVO.isApplets != 0'>
+                AND w.`status` = 7
+            </if>
+            <if test='comActMicroWishVO.isApplets != null and comActMicroWishVO.isApplets != 0 and comActMicroWishVO.status != null and comActMicroWishVO.status != 7 and comActMicroWishVO.status != 6 and comActMicroWishVO.status != 3'>
+                AND w.status  in (3, 5, 6)
+            </if>
+            <if test='comActMicroWishVO.userId != null and comActMicroWishVO.userId != 0'>
+                AND w.sponsor_id  =#{comActMicroWishVO.userId}
+            </if>
+        </where>
+        group by w.id
+        ORDER BY  w.create_at desc
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishFeedbackMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishFeedbackMapper.xml
new file mode 100644
index 0000000..59dd54c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishFeedbackMapper.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComActMicroWishFeedbackMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActMicroWishFeedbackDO">
+        <id column="id" property="id"/>
+        <result column="micro_id" property="microId"/>
+        <result column="user_id" property="userId"/>
+        <result column="content" property="content"/>
+        <result column="img_url" property="imgUrl"/>
+        <result column="create_time" property="createTime"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id
+        , micro_id, user_id, content, img_url, create_time
+    </sql>
+
+    <select id="selectByWishId" resultType="com.panzhihua.common.model.vos.community.ComActMicroWishFeedbackVO">
+        select t.*,t1.name from com_act_micro_wish_feedback t left join sys_user t1 on t.user_id =t1.user_id where t.micro_id =#{id} order by t.create_time desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishOperationRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishOperationRecordMapper.xml
new file mode 100644
index 0000000..f7a26dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishOperationRecordMapper.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComActMicroWishOperationRecordMapper">
+
+        <!-- 通用查询映射结果 -->
+        <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActMicroWishOperationRecordDO">
+                    <id column="id" property="id" />
+                    <result column="content" property="content" />
+                    <result column="user_id" property="userId" />
+                    <result column="wish_id" property="wishId" />
+                    <result column="create_time" property="createTime" />
+                    <result column="remark" property="remark" />
+                    <result column="img_url" property="imgUrl" />
+                    <result column="type" property="type"/>
+        </resultMap>
+
+        <!-- 通用查询结果列 -->
+        <sql id="Base_Column_List">
+        id, content, user_id, wish_id, create_time, remark, img_url
+    </sql>
+
+    <select id="getByWishId" resultType="com.panzhihua.common.model.vos.community.ComActMicroWishOperationRecordVO">
+        select t.*,t1.name from com_act_micro_wish_operation_record t left join sys_user t1 on t.user_id =t1.user_id where t.wish_id =#{id} order by t.create_time desc
+    </select>
+
+    <select id="selectId" resultType="Long">
+        select id from com_act_micro_wish
+        <where>
+            1=1 and community_id = #{communityId}
+            <if test="status !=null">
+                and status=#{status}
+            </if>
+        </where>
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleDOMapper.xml
new file mode 100644
index 0000000..c2011bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleDOMapper.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComActNeighborCircleDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActNeighborCircleDO">
+        <id column="id" property="id"/>
+        <result column="release_id" property="releaseId"/>
+        <result column="release_phone" property="releasePhone"/>
+        <result column="community_id" property="communityId"/>
+        <result column="release_content" property="releaseContent"/>
+        <result column="release_images" property="releaseImages"/>
+        <result column="status" property="status"/>
+        <result column="refuse_reason" property="refuseReason"/>
+        <result column="comment_num" property="commentNum"/>
+        <result column="fabulous_num" property="fabulousNum"/>
+        <result column="forward_num" property="forwardNum"/>
+        <result column="views_num" property="viewsNum"/>
+        <result column="is_boutique" property="isBoutique"/>
+        <result column="create_at" property="createAt"/>
+        <result column="reply_at" property="replyAt"/>
+        <result column="last_comment_num" property="lastCommentNum"/>
+        <result column="last_fabulous_num" property="lastFabulousNum"/>
+        <result column="last_views_num" property="lastViewsNum"/>
+        <result column="type" property="type"/>
+        <result column="topic_id" property="topicId"/>
+        <result column="hot_num" property="hotNum"/>
+        <result column="is_del" property="isDel"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, release_id, release_phone, community_id, release_content, release_images, status, refuse_reason, comment_num, fabulous_num, forward_num, views_num, is_boutique, create_at, reply_at, last_comment_num, last_fabulous_num, last_views_num, type, topic_id, hot_num, is_del
+    </sql>
+
+    <select id="pageNeighborByApp" parameterType="com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleAppDTO"
+            resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAppVO">
+        SELECT
+        canc.id,
+        canc.release_content,
+        canc.release_images,
+        canc.comment_num,
+        canc.fabulous_num,
+        canc.forward_num,
+        canc.views_num,
+        canc.is_boutique,
+        canc.create_at,
+        canc.refuse_reason,
+        canc.reply_at,
+        canc.last_comment_num,
+        canc.last_fabulous_num,
+        canc.last_views_num,
+        canc.type,
+        canc.topic_id,
+        canc.hot_num,
+        su.nick_name as name,
+        su.community_id,
+        canct.name as topicName,
+        su.image_url as headUrl
+        FROM
+        com_act_neighbor_circle AS canc
+        left join sys_user as su on su.user_id = canc.release_id
+        left join com_act_neighbor_circle_topic as canct on canct.id = canc.topic_id
+        where canc.status = 2 and is_del = 2 and canc.community_id = #{neighborCircleAppDTO.communityId}
+        <if test='neighborCircleAppDTO.topicId != null '>
+            and canc.topic_id = #{neighborCircleAppDTO.topicId}
+        </if>
+        <if test='neighborCircleAppDTO.keyWord != null and neighborCircleAppDTO.keyWord != &quot;&quot;'>
+            and (canct.`name` like concat (#{neighborCircleAppDTO.keyWord},'%') or
+            su.nick_name like concat (#{neighborCircleAppDTO.keyWord},'%') or
+             canc.release_content like concat (#{neighborCircleAppDTO.keyWord},'%'))
+        </if>
+        order by canc.create_at desc
+    </select>
+
+    <update id="addHotNum">
+        update com_act_neighbor_circle set hot_num = hot_num + #{hotNum} where id = #{circleId}
+    </update>
+
+    <update id="addTopicHotNum">
+        update com_act_neighbor_circle_topic set hot_num = hot_num + 1 where id = (select topic_id from com_act_neighbor_circle where id = #{circleId})
+    </update>
+
+    <select id="pageNeighborByAdmin" parameterType="com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleAdminDTO"
+            resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAdminVO">
+        SELECT
+        nc.*,
+        u.`nick_name` AS releaseName,u.image_url,canct.`name` as topicName ,u.`type` as userType
+        ,u.name as communityName
+        FROM
+        com_act_neighbor_circle nc
+        LEFT JOIN sys_user u ON nc.release_id = u.user_id
+        LEFT JOIN com_act_neighbor_circle_topic as canct ON canct.id = nc.topic_id
+        <where>
+            nc.community_id = #{neighborCircleAdminDTO.communityId} and is_del = 2
+            <if test='neighborCircleAdminDTO.releaseContent != null and neighborCircleAdminDTO.releaseContent != &quot;&quot;'>
+                and nc.release_content like concat('%',#{neighborCircleAdminDTO.releaseContent},'%')
+            </if>
+            <if test='neighborCircleAdminDTO.topicName != null and neighborCircleAdminDTO.topicName != &quot;&quot;'>
+                and canct.`name` = #{neighborCircleAdminDTO.topicName}
+            </if>
+            <if test='neighborCircleAdminDTO.keyWord != null and neighborCircleAdminDTO.keyWord != &quot;&quot;'>
+                and (canct.`name` like concat(#{neighborCircleAdminDTO.keyWord},'%') or
+                u.`nick_name` like concat(#{neighborCircleAdminDTO.keyWord},'%') or
+                nc.`release_content` like concat(#{neighborCircleAdminDTO.keyWord},'%') )
+            </if>
+            <if test='neighborCircleAdminDTO.startAt != null and neighborCircleAdminDTO.endAt !=null '>
+                and nc.create_at between #{neighborCircleAdminDTO.startAt} and #{neighborCircleAdminDTO.endAt}
+            </if>
+            <if test='neighborCircleAdminDTO.status != null '>
+                and nc.status = #{neighborCircleAdminDTO.status}
+            </if>
+        </where>
+        order by
+        case when nc.`status`=1 then 0 else 1 end,
+        nc.`status` asc,nc.create_at desc
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleTopicDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleTopicDOMapper.xml
index 906c3c8..2a81197 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleTopicDOMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleTopicDOMapper.xml
@@ -10,11 +10,13 @@
         <result column="status" property="status" />
         <result column="create_at" property="createAt" />
         <result column="create_by" property="createBy" />
+        <result column="count" property="count" />
+        <result column="hot_num" property="hotNum" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, community_id, name, status, create_at, create_by
+        id, community_id, name, status, create_at, create_by, count, hot_num
     </sql>
 
     <select id="pageNeighborTopicByAdmin" parameterType="com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleTopicAdminDTO"
@@ -24,6 +26,7 @@
             canct.`name`,
             canct.`status`,
             canct.create_at,
+            ( SELECT count( id ) FROM com_act_neighbor_circle WHERE is_del = 2 AND `status` = 2 and topic_id = canct.id) AS `count`,
             su.`name` as createBy
         FROM
             com_act_neighbor_circle_topic AS canct
@@ -43,6 +46,22 @@
     </select>
 
     <select id="getNeighborTopicByApp" resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleTopicAppVO">
-        select id,`name` from com_act_neighbor_circle_topic where `status` = 1 and community_id = #{communityId}
+        SELECT canct.id, canct.`name`, canct.hot_num,( SELECT count( id ) FROM com_act_neighbor_circle WHERE is_del = 2 AND `status` = 2 and topic_id = canct.id) AS `count`
+         from com_act_neighbor_circle_topic as canct where canct.`status` = 1 and canct.community_id = #{communityId}
+        <if test="isZero != null and isZero == 1">
+            and `count` > 0
+        </if>
+        <if test="name != null and name != &quot;&quot;">
+            and canct.`name` like concat('%',#{name},'%')
+        </if>
+        order by `count` desc
     </select>
+
+    <update id="addHotNum">
+        update com_act_neighbor_circle_topic set hot_num = hot_num + #{hotNum} where id = #{circleTopicId}
+    </update>
+
+    <update id="addCount">
+        update com_act_neighbor_circle_topic set `count` = `count` + 1 where id = #{circleTopicId}
+    </update>
 </mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireAnswerContentDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireAnswerContentDOMapper.xml
new file mode 100644
index 0000000..fe0f3f2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireAnswerContentDOMapper.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComActQuestnaireAnswerContentDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActQuestnaireAnswerContentDO">
+        <id column="id" property="id" />
+        <result column="create_by" property="createBy" />
+        <result column="create_at" property="createAt" />
+        <result column="update_by" property="updateBy" />
+        <result column="update_at" property="updateAt" />
+        <result column="choice" property="choice" />
+        <result column="answer_content" property="answerContent" />
+        <result column="sub_id" property="subId" />
+        <result column="user_id" property="userId" />
+        <result column="type" property="type" />
+        <result column="selection_id" property="selectionId" />
+        <result column="answer_id" property="answerId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, create_by, create_at, update_by, update_at, choice, answer_content, sub_id, user_id, type, selection_id, answer_id
+    </sql>
+
+    <select id="selectListByQuestnaire" resultType="com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO">
+        SELECT
+            caqs.type AS optionType,
+            caqac.answer_id as reserveRecordId,
+            caqac.sub_id as reserveSubId,
+            caqac.answer_content,
+            caqac.type,
+            caqac.id,
+            su.nick_name,
+            caqua.create_at AS `time`
+        FROM
+            com_act_questnaire_answer_content caqac
+            LEFT JOIN com_act_questnaire_sub caqs ON caqac.selection_id = caqs.id
+            LEFT JOIN com_act_questnaire caq ON caqs.que_Id = caq.id
+            LEFT JOIN sys_user su ON caqac.user_id = su.user_id
+            LEFT JOIN com_act_questnaire_user_answer caqua ON caqua.id = caqac.answer_id
+        WHERE
+            caq.id = #{questId}
+        ORDER BY
+            caqac.answer_id asc,caqac.id ASC
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireDOMapper.xml
index 0737791..4fa7860 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireDOMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireDOMapper.xml
@@ -52,6 +52,7 @@
                 start_time BETWEEN #{startTime} AND #{endTime}  OR
                 end_time   BETWEEN #{startTime} AND #{endTime}
             )
+            and is_hide = 0 and state != 3
             <if test="id != null">
                 AND id != #{id}
             </if>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml
index 8959a26..a9e59e2 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml
@@ -25,7 +25,7 @@
 
     <select id="selectListByReserve" resultType="com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO">
         SELECT
-            ac.*,su.nick_name,carr.create_at as `time`
+            qs.type as optionType,ac.*,su.nick_name,carr.create_at as `time`
         FROM
             com_act_reserve_answer_content ac
             LEFT JOIN com_act_reserve_sub qs ON ac.reserve_sub_id = qs.id
@@ -34,6 +34,7 @@
             LEFT JOIN com_act_reserve_record carr ON carr.id = ac.reserve_record_id
         WHERE
             qn.id = #{reserveId}
+            order by ac.reserve_record_id asc,ac.id asc
     </select>
 
     <select id="pageRegisterDetailedListAdmin" parameterType="com.panzhihua.common.model.dtos.community.reserve.PageReserveRegisterDetailedAdminDTO"
@@ -57,7 +58,7 @@
 
     <select id="getRegisterDetailedAnswerList" resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedAnswerVO">
         SELECT
-            car.content as reserveSubContent, carac.answer_content as answerContent,carac.reserve_sub_id as reserveSubId
+            car.content as reserveSubContent, carac.answer_content as answerContent,carac.reserve_sub_id as reserveSubId,car.`type`
         FROM
             com_act_reserve_answer_content AS carac
             LEFT JOIN com_act_reserve_sub AS car ON car.id = carac.reserve_sub_id
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveMapper.xml
index 9c2969d..eda5938 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveMapper.xml
@@ -183,4 +183,9 @@
     <update id="addReserveCountById">
         update com_act_reserve set join_count = join_count - 1 where id = #{reserveId}
     </update>
+
+    <select id="getReserveIndexList" resultType="com.panzhihua.common.model.vos.community.ComActReserveIndexVo">
+        select id,title,type,img_type,img_url,adver_position_top,adver_position_application from com_act_reserve where `status` = 2 and is_del = 2
+        and community_id = #{communityId}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveRecordMapper.xml
index c623c69..3fb51bb 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveRecordMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveRecordMapper.xml
@@ -21,14 +21,15 @@
         <result column="create_by" property="createBy"/>
         <result column="update_at" property="updateAt"/>
         <result column="update_by" property="updateBy"/>
+        <result column="handle_id" property="handleId"/>
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, user_id, reserve_id, community_id, type, name, phone, status, content, remark, act_remark, reserve_time, json_object, create_at, create_by, update_at, update_by
+        id, user_id, reserve_id, community_id, type, name, phone, status, content, remark, act_remark, reserve_time, json_object, create_at, create_by, update_at, update_by, handle_id
     </sql>
 
-    <select id="pageReserveList" resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveRecordListVO">
+    <select id="pageReserveList" resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveAppletsVO">
         select t.*,t1.title from com_act_reserve_record t left join com_act_reserve t1 on t.reserve_id = t1.id
         <where>
             1=1
@@ -42,6 +43,7 @@
                 and t.user_id =#{pageUserReserveDTO.userId}
             </if>
         </where>
+        order by t.create_at desc
     </select>
 
     <select id="pageMakeAdmin" parameterType="com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeAdminDTO"
@@ -156,23 +158,24 @@
 
     <select id="registerStatisticsExportAdmin" parameterType="com.panzhihua.common.model.dtos.community.reserve.ComActReserveRegisterStatisticsDTO"
             resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterStatisticsAdminVO">
-        SELECT
-            car.title,
-            count( carr.id ) AS count,
-            ( SELECT count( id ) FROM com_act_reserve_record WHERE `type` = 2 AND community_id = #{registerStatisticsDTO.communityId} AND `status` = 2 ) AS allCount
+        SELECT DISTINCT
+        car.id,
+        car.title,
+        ( SELECT count( id ) FROM com_act_reserve_record WHERE `type` = 2 AND community_id = #{registerStatisticsDTO.communityId} AND `status` = 2 AND reserve_id = car.id
+        <if test="registerStatisticsDTO.startTime != null and registerStatisticsDTO.startTime != &quot;&quot;">
+            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{registerStatisticsDTO.startTime}
+        </if>
+        <if test="registerStatisticsDTO.endTime != null and registerStatisticsDTO.endTime != &quot;&quot;">
+            AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{registerStatisticsDTO.endTime}
+        </if>
+        ) AS count,
+        ( SELECT count( id ) FROM com_act_reserve_record WHERE `type` = 2 AND community_id = #{registerStatisticsDTO.communityId} AND `status` = 2 ) AS allCount
         FROM
-            com_act_reserve_record AS carr
-            LEFT JOIN com_act_reserve AS car ON car.id = carr.reserve_id
+        com_act_reserve AS car
         WHERE
-            carr.type = 2
-            AND carr.community_id = #{registerStatisticsDTO.communityId}
-            AND carr.`status` = 2
-            <if test="registerStatisticsDTO.startTime != null and registerStatisticsDTO.startTime != &quot;&quot;">
-                AND DATE_FORMAT(carr.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{registerStatisticsDTO.startTime}
-            </if>
-            <if test="registerStatisticsDTO.endTime != null and registerStatisticsDTO.endTime != &quot;&quot;">
-                AND DATE_FORMAT(carr.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{registerStatisticsDTO.endTime}
-            </if>
+        car.type = 2
+        AND car.community_id = #{registerStatisticsDTO.communityId}
+
         GROUP BY
             car.id
     </select>
@@ -186,7 +189,7 @@
             carr.phone,
             carr.reserve_time,
             carr.`content`,
-            carr.remark,
+            su1.`name` as remark,
             carr.act_remark,
             carr.`status`,
             car.`title`,
@@ -194,6 +197,7 @@
         FROM
             com_act_reserve_record AS carr
             LEFT JOIN sys_user AS su ON su.user_id = carr.user_id
+            LEFT JOIN sys_user AS su1 ON su1.user_id = carr.handle_id
             LEFT JOIN com_act_reserve AS car ON car.id = carr.reserve_id
         WHERE
             carr.`type` = 1
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveSubMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveSubMapper.xml
index 3c453be..c16a082 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveSubMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveSubMapper.xml
@@ -22,7 +22,7 @@
     </sql>
 
     <select id="getReserveSubjectList" resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveSubListVO">
-        select id,content from com_act_reserve_sub where reserve_id = #{reserveId} order by id asc
+        select id,content,`type` from com_act_reserve_sub where reserve_id = #{reserveId} order by id asc
     </select>
 
 </mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveSubSelectionMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveSubSelectionMapper.xml
index 45705b5..b25b1c5 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveSubSelectionMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveSubSelectionMapper.xml
@@ -16,11 +16,12 @@
                     <result column="create_by" property="createBy" />
                     <result column="update_at" property="updateAt" />
                     <result column="update_by" property="updateBy" />
+                    <result column="url" property="url" />
         </resultMap>
 
         <!-- 通用查询结果列 -->
         <sql id="Base_Column_List">
-        id, reserve_id, reserve_sub_id, key, type, sort, option_name, content, create_at, create_by, update_at, update_by
+        id, reserve_id, reserve_sub_id, key, type, sort, option_name, content, create_at, create_by, update_at, update_by, url
     </sql>
 
 </mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWorkGuideClassifyMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWorkGuideClassifyMapper.xml
new file mode 100644
index 0000000..d7e024e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWorkGuideClassifyMapper.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComActWorkGuideClassifyDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActWorkGuideClassifyDO">
+                <id column="id" property="id" />
+                <result column="classify_name" property="classifyName" />
+                <result column="picture_url" property="pictureUrl" />
+                <result column="create_at" property="createAt" />
+                <result column="sys_flag" property="sysFlag" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+        <sql id="Base_Column_List">
+        id, classify_name, picture_url, create_at, sys_flag
+    </sql>
+
+    <select id="pageWorkGuideClassify" resultType="com.panzhihua.common.model.vos.community.ComActWorkGuideClassifyVO">
+        select
+        id,
+        classify_name,
+        picture_url,
+        create_at,
+        sys_flag
+        from com_act_work_guide_classify
+        <where>
+            <if test="comActWorkGuideClassifyVO.classifyName != null and comActWorkGuideClassifyVO.classifyName !=''">
+                AND classify_name like concat ('%', #{comActWorkGuideClassifyVO.classifyName}, '%')
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <select id="listWorkGuideClassify" resultType="com.panzhihua.common.model.vos.community.ComActWorkGuideAppletsVO">
+        SELECT cawgc.id, cawgc.classify_name, cawgc.picture_url,( SELECT count( id ) FROM com_act_work_guide WHERE classify = cawgc.id ) AS `count`
+        FROM
+            com_act_work_guide_classify AS cawgc
+        order by `count` asc
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWorkGuideDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWorkGuideDOMapper.xml
new file mode 100644
index 0000000..309397f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWorkGuideDOMapper.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComActWorkGuideDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActWorkGuideDO">
+        <id column="id" property="id" />
+        <result column="title" property="title" />
+        <result column="content" property="content" />
+        <result column="classify" property="classify" />
+        <result column="time_at" property="timeAt" />
+        <result column="address" property="address" />
+        <result column="phone" property="phone" />
+        <result column="lon" property="lon" />
+        <result column="lat" property="lat" />
+        <result column="create_at" property="createAt" />
+        <result column="create_by" property="createBy" />
+        <result column="update_at" property="updateAt" />
+        <result column="update_by" property="updateBy" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, title, content, classify, time_at, address, phone, lon, lat, create_at, create_by, update_at, update_by
+    </sql>
+
+    <select id="getWorkGuideListByClassifyId" resultType="com.panzhihua.common.model.vos.community.ComActWorkGuideDetailAppletsVO">
+        select id ,title,content,classify,time_at,address,phone,create_at from com_act_work_guide where classify = #{classifyId}
+         order by create_at desc
+         <if test="pageSize != null">
+             limit #{pageSize}
+         </if>
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthElderliesMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthElderliesMapper.xml
new file mode 100644
index 0000000..edc1bed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthElderliesMapper.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComElderAuthElderliesDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComElderAuthElderliesDO">
+                <id column="id" property="id" />
+                <result column="population_id" property="populationId" />
+                <result column="street_id" property="streetId" />
+                <result column="community_id" property="communityId" />
+                <result column="phone" property="phone" />
+                <result column="name" property="name" />
+                <result column="id_card" property="idCard" />
+                <result column="sex" property="sex" />
+                <result column="age" property="age" />
+                <result column="birthday" property="birthday" />
+                <result column="personnel_category" property="personnelCategory" />
+                <result column="is_register" property="isRegister" />
+                <result column="is_alive" property="isAlive" />
+                <result column="address" property="address" />
+                <result column="remark" property="remark" />
+                <result column="receive_allowance_begin" property="receiveAllowanceBegin" />
+                <result column="create_at" property="createAt" />
+                <result column="create_by" property="createBy" />
+                <result column="update_at" property="updateAt" />
+                <result column="update_by" property="updateBy" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, population_id, street_id, community_id, phone, name, id_card, sex, age, birthday, personnel_category, is_register, is_alive, address, remark, receive_allowance_begin, create_at, create_by, update_at, update_by
+    </sql>
+
+    <select id="haveElderAuthElderliesAmount" resultType="java.lang.Integer">
+        SELECT
+            count( ceae.id )
+        FROM
+            com_elder_auth_elderlies ceae
+        WHERE
+            community_id = #{communityId}
+          AND EXISTS (
+                SELECT
+                    1
+                FROM
+                    com_elder_auth_records cear
+                WHERE
+                    ceae.id = cear.elderlies_id
+                  AND cear.auth_status = 1
+                  AND cear.auth_period = #{authPeriod})
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthRecordsMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthRecordsMapper.xml
new file mode 100644
index 0000000..a608554
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthRecordsMapper.xml
@@ -0,0 +1,354 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComElderAuthRecordsDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComElderAuthRecordsDO">
+                <id column="id" property="id" />
+                <result column="elderlies_id" property="elderliesId" />
+                <result column="auth_period" property="authPeriod" />
+                <result column="auth_method" property="authMethod" />
+                <result column="verification_result" property="verificationResult" />
+                <result column="submit_user_id" property="submitUserId" />
+                <result column="auth_video" property="authVideo" />
+                <result column="address" property="address" />
+                <result column="approver_id" property="approverId" />
+                <result column="approval_status" property="approvalStatus" />
+                <result column="approval_date" property="approvalDate" />
+                <result column="mark" property="mark" />
+                <result column="reject_reason" property="rejectReason" />
+                <result column="auth_status" property="authStatus" />
+                <result column="auth_date" property="authDate" />
+                <result column="create_at" property="createAt" />
+                <result column="update_at" property="updateAt" />
+                <result column="community_id" property="communityId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, elderlies_id, auth_period, auth_method, verification_result, submit_user_id, auth_video, address, approver_id, approval_status, approval_date, mark, reject_reason, auth_status, auth_date, create_at, update_at, community_id
+    </sql>
+
+    <select id="pageElderAuthRecords" resultType="com.panzhihua.common.model.vos.community.ComElderAuthRecordVO">
+        SELECT
+            cear.id,
+            su.`name` submitUserName,
+            ceae.phone,
+            ceae.`name`,
+            ceae.id_card,
+            ceae.sex,
+            ceae.birthday,
+            ceae.personnel_category,
+            ceae.address,
+            ceae.is_alive,
+            cear.auth_method,
+            cear.auth_period,
+            cear.auth_video,
+            cear.auth_date,
+            cear.mark,
+            cear.approval_status,
+            cear.approver_id,
+            su1.`name` as approverName,
+            cear.approval_date,
+            cear.auth_status
+        FROM
+            com_elder_auth_records cear
+                LEFT JOIN com_elder_auth_elderlies ceae ON cear.elderlies_id = ceae.id
+                LEFT JOIN sys_user su ON cear.submit_user_id = su.user_id
+                LEFT JOIN sys_user su1 ON cear.approver_id = su1.user_id
+        WHERE
+            ceae.community_id = #{pageElderAuthRecordsDTO.communityId}
+        <if test="pageElderAuthRecordsDTO.authPeriod != null and pageElderAuthRecordsDTO.authPeriod !=''">
+            and cear.auth_period = #{pageElderAuthRecordsDTO.authPeriod}
+        </if>
+        <if test="pageElderAuthRecordsDTO.authMethod != null and pageElderAuthRecordsDTO.authMethod != 0">
+            and cear.auth_method = #{pageElderAuthRecordsDTO.authMethod}
+        </if>
+        <if test="pageElderAuthRecordsDTO.authDateBegin != null and pageElderAuthRecordsDTO.authDateBegin != ''">
+            and cear.auth_date after #{pageElderAuthRecordsDTO.authDateBegin}
+        </if>
+        <if test="pageElderAuthRecordsDTO.authDateEnd != null and pageElderAuthRecordsDTO.authDateEnd != ''">
+            and cear.auth_date before #{pageElderAuthRecordsDTO.authDateEnd}
+        </if>
+        <if test="pageElderAuthRecordsDTO.approvalStatus != null and pageElderAuthRecordsDTO.approvalStatus != 0">
+            and cear.approval_status = #{pageElderAuthRecordsDTO.approvalStatus}
+        </if>
+        <if test="pageElderAuthRecordsDTO.authStatus != null and pageElderAuthRecordsDTO.authStatus != 0">
+            and cear.auth_status = #{pageElderAuthRecordsDTO.authStatus}
+        </if>
+        <if test="pageElderAuthRecordsDTO.personnelCategory != null and pageElderAuthRecordsDTO.personnelCategory != 0">
+            and ceae.personnel_category = #{pageElderAuthRecordsDTO.personnelCategory}
+        </if>
+        <if test="pageElderAuthRecordsDTO.isAlive != null and pageElderAuthRecordsDTO.isAlive != 0">
+            and ceae.is_alive = #{pageElderAuthRecordsDTO.isAlive}
+        </if>
+        <if test="pageElderAuthRecordsDTO.searchKey != null and pageElderAuthRecordsDTO.searchKey != ''">
+            and (ceae.`name` like concat ('%', #{pageElderAuthRecordsDTO.searchKey}, '%')
+            or  cear.mark like concat ('%', #{pageElderAuthRecordsDTO.searchKey}, '%'))
+        </if>
+        order by cear.create_at desc
+    </select>
+
+    <select id="detailElderAuthRecords" resultType="com.panzhihua.common.model.vos.community.ComElderAuthRecordVO">
+        SELECT
+            su.`name` submitUserName,
+            ceae.phone,
+            cear.id,
+            ceae.`name`,
+            ceae.id_card,
+            ceae.sex,
+            ceae.birthday,
+            ceae.personnel_category,
+            ceae.address,
+            ceae.is_alive,
+            cear.auth_method,
+            cear.auth_period,
+            cear.auth_date,
+            cear.mark,
+            cear.auth_video,
+            cear.approval_status,
+            cear.community_id,
+            su1.`name` as approverName,
+            cear.approval_date
+        FROM
+            com_elder_auth_records cear
+                LEFT JOIN com_elder_auth_elderlies ceae ON cear.elderlies_id = ceae.id
+                LEFT JOIN sys_user su ON cear.submit_user_id = su.user_id
+                LEFT JOIN sys_user su1 ON cear.approver_id = su1.user_id
+        WHERE
+            cear.id = #{authRecordId}
+    </select>
+
+    <select id="getElderAuthRecordsByIds" resultType="com.panzhihua.common.model.vos.community.ComElderAuthRecordExcleVO">
+        SELECT
+            su.`name` submitUserName,
+            ceae.phone,
+            ceae.`name`,
+            ceae.id_card,
+            CASE
+                ceae.sex
+                WHEN 1 THEN
+                    '男'
+                WHEN 2 THEN
+                    '女'
+                WHEN 3 THEN
+                    '其他'
+                END sex,
+            ceae.birthday,
+            CASE
+                ceae.personnel_category
+                WHEN 1 THEN
+                    '80-89周岁'
+                WHEN 2 THEN
+                    '90-99周岁'
+                WHEN 3 THEN
+                    '100周岁(含)以上'
+                END personnelCategory,
+            ceae.address,
+            CASE
+                ceae.is_alive
+                WHEN 1 THEN
+                    '是'
+                WHEN 0 THEN
+                    '否'
+                END isAlive,
+            CASE
+                cear.auth_method
+                WHEN 1 THEN
+                '视频认证'
+                WHEN 2 THEN
+                '人脸认证'
+                END authMethod,
+            cear.auth_period,
+            cear.auth_date,
+            cear.mark,
+            CASE
+                cear.approval_status
+                WHEN 1 THEN
+                    '待审核'
+                WHEN 2 THEN
+                    '驳回'
+                WHEN 3 THEN
+                    '通过'
+                END approvalStatus
+        FROM
+            com_elder_auth_records cear
+                LEFT JOIN com_elder_auth_elderlies ceae ON cear.elderlies_id = ceae.id
+                LEFT JOIN sys_user su ON cear.submit_user_id = su.user_id
+            <where>
+                <if test="ids != null and ids.size > 0">
+                    and cear.id in
+                    <foreach collection="ids" item="id" open="(" separator="," close=")" >
+                        #{id}
+                    </foreach>
+                </if>
+            </where>
+
+        order by cear.create_at desc
+    </select>
+
+    <update id="updateAll" parameterType="java.util.List">
+        <foreach collection="comElderAuthRecordsDOS" item="item" index="index" separator=";">
+            update com_elder_auth_records
+            <set>
+                <if test="item.id != null">
+                    `id` = #{item.id},
+                </if>
+                <if test="item.elderliesId != null">
+                    `elderlies_id` = #{item.elderliesId},
+                </if>
+                <if test="item.authMethod != null and item.authMethod != 0">
+                    `auth_method` = #{item.authMethod},
+                </if>
+                <if test="item.authPeriod != null and item.authPeriod != ''">
+                    `auth_period` = #{item.authPeriod},
+                </if>
+                <if test="item.submitUserId != null">
+                    `submit_user_id` = #{item.submitUserId},
+                </if>
+                <if test="item.authVideo != null and item.authVideo != ''">
+                    `auth_video` = #{item.authVideo},
+                </if>
+                <if test="item.address != null and item.address != ''">
+                    `address` = #{item.address},
+                </if>
+                <if test="item.approverId != null">
+                    `approver_id` = #{item.approverId},
+                </if>
+                <if test="item.approvalStatus != null">
+                    `approval_status` = #{item.approvalStatus},
+                </if>
+                <if test="item.approvalDate != null">
+                    `approval_date` = #{item.approvalDate},
+                </if>
+                <if test="item.mark != null and item.mark != ''">
+                    `mark` = #{item.mark},
+                </if>
+                <if test="item.rejectReason != null and item.rejectReason != ''">
+                    `reject_reason` = #{item.rejectReason},
+                </if>
+                <if test="item.authStatus != null">
+                    `auth_status` = #{item.authStatus},
+                </if>
+                <if test="item.authDate != null">
+                    `auth_date` = #{item.authDate},
+                </if>
+                `update_at` = NOW()
+            </set>
+            WHERE `id` = #{item.id}
+        </foreach>
+        ;
+    </update>
+
+    <select id="exportElderAuthRecordsStatistic" resultType="com.panzhihua.common.model.vos.community.ComElderAuthRecordStatisticExcleVO">
+        SELECT
+        su.`name` submitUserName,
+        ceae.phone,
+        ceae.`name`,
+        ceae.id_card,
+        CASE
+        ceae.sex
+        WHEN 1 THEN
+        '男'
+        WHEN 2 THEN
+        '女'
+        WHEN 3 THEN
+        '其他'
+        END sex,
+        ceae.birthday,
+        CASE
+        ceae.personnel_category
+        WHEN 1 THEN
+        '80-89周岁'
+        WHEN 2 THEN
+        '90-99周岁'
+        WHEN 3 THEN
+        '100周岁(含)以上'
+        END personnelCategory,
+        ceae.address,
+        CASE
+        ceae.is_alive
+        WHEN 1 THEN
+        '是'
+        WHEN 0 THEN
+        '否'
+        END is_alive,
+        ceahr.auth_period,
+        ceahr.auth_date,
+        CASE
+        ceahr.auth_method
+        WHEN 1 THEN
+        '视频认证'
+        WHEN 2 THEN
+        '人脸认证'
+        WHEN 3 THEN
+        '线下认证'
+        END authMethod,
+        ceahr.mark,
+        CASE
+        ceahr.is_auth
+        WHEN 1 THEN
+        '已认证'
+        WHEN 2 THEN
+        '未认证'
+        END authStatus
+        FROM
+        com_elders_auth_history_record ceahr
+        LEFT JOIN com_elder_auth_elderlies ceae ON ceahr.elderlies_id = ceae.id
+        LEFT JOIN sys_user su ON ceahr.submit_user_id = su.user_id
+        WHERE
+        ceahr.community_id = #{pageElderAuthRecordsDTO.communityId}
+        <if test="pageElderAuthRecordsDTO.authPeriod != null and pageElderAuthRecordsDTO.authPeriod !=''">
+            and ceahr.auth_period = #{pageElderAuthRecordsDTO.authPeriod}
+        </if>
+        <if test="pageElderAuthRecordsDTO.authStatus != null and pageElderAuthRecordsDTO.authStatus != 0">
+            and ceahr.is_auth = #{pageElderAuthRecordsDTO.authStatus}
+        </if>
+        <if test="pageElderAuthRecordsDTO.personnelCategory != null and pageElderAuthRecordsDTO.personnelCategory != 0">
+            and ceae.personnel_category = #{pageElderAuthRecordsDTO.personnelCategory}
+        </if>
+        <if test="pageElderAuthRecordsDTO.isAlive != null and pageElderAuthRecordsDTO.isAlive != 0">
+            and ceae.is_alive = #{pageElderAuthRecordsDTO.isAlive}
+        </if>
+        <if test="pageElderAuthRecordsDTO.keyWord != null and pageElderAuthRecordsDTO.keyWord != ''">
+            and (ceae.`name` like concat ('%', #{pageElderAuthRecordsDTO.keyWord}, '%')
+            or  ceahr.mark like concat ('%', #{pageElderAuthRecordsDTO.keyWord}, '%'))
+        </if>
+        order by ceahr.create_at desc
+    </select>
+
+    <select id="getNextIds" resultType="long">
+        select id from com_elder_auth_records where approval_status = 1 and community_id = #{communityId} and id != #{authRecordId}
+    </select>
+
+    <select id="queryRecordWithPage" resultType="com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO">
+        SELECT
+            cear.id,
+            cear.auth_date,
+            cear.auth_status,
+            cear.reject_reason,
+            cear.approval_status,
+            ceae.name,
+            ceae.id_card
+        FROM `com_elder_auth_records` cear
+        LEFT JOIN `com_elder_auth_elderlies` ceae ON cear.elderlies_id = ceae.id
+        WHERE cear.submit_user_id = #{pageIdentityAuthRecordDTO.submitUserId}
+        ORDER BY cear.id DESC
+    </select>
+    <select id="findById" resultType="com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO">
+        SELECT
+            ceae.name,
+            ceae.id_card,
+            ca.name AS communityName,
+            cear.address,
+            cear.auth_period,
+            cear.auth_date,
+            cear.auth_video,
+            cear.reject_reason,
+            cear.approval_status
+        FROM `com_elder_auth_records` cear
+        LEFT JOIN `com_elder_auth_elderlies` ceae ON cear.elderlies_id = ceae.id
+        LEFT JOIN `com_act` ca ON ceae.community_id = ca.community_id
+        WHERE cear.id = #{identityAuthId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthDOMapper.xml
new file mode 100644
index 0000000..e0ebe1e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthDOMapper.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.EldersAuthDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.EldersAuthDO">
+        <id column="ID" property="id" />
+        <result column="CREATE_BY" property="createBy" />
+        <result column="CREATE_AT" property="createAt" />
+        <result column="UPDATE_BY" property="updateBy" />
+        <result column="UPDATE_AT" property="updateAt" />
+        <result column="ID_CARD" property="idCard" />
+        <result column="AUTH_USER_NAME" property="authUserName" />
+        <result column="VIDEO_URL" property="videoUrl" />
+        <result column="SUMIT_USER_ID" property="sumitUserId" />
+        <result column="DOMICILE" property="domicile" />
+        <result column="STATUS" property="status" />
+        <result column="BIRTH_DAY" property="birthDay" />
+        <result column="FAMILY_USER_ID" property="familyUserId" />
+        <result column="type" property="type" />
+        <result column="verification_result" property="verificationResult" />
+        <result column="age" property="age" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        ID, CREATE_BY, CREATE_AT, UPDATE_BY, UPDATE_AT, ID_CARD, AUTH_USER_NAME, VIDEO_URL, SUMIT_USER_ID, DOMICILE, STATUS, BIRTH_DAY, FAMILY_USER_ID, type, verification_result, age
+    </sql>
+
+    <select id="getEldersAuthStatistics" resultType="Map">
+        SELECT
+            community_id,
+            ( SELECT count( id ) FROM com_elders_auth_elderly WHERE community_id = ca.community_id AND is_exist = 1 AND is_big_age = 1 ) AS oldCount,
+            (
+            SELECT
+                count( id )
+            FROM
+                com_elders_auth_history_record
+            WHERE
+                community_id = ca.community_id
+                AND is_auth = 1
+                AND create_at BETWEEN DATE_FORMAT( date_sub( date_format( now(), '%y-%m-%d 00:00:00' ), INTERVAL extract( DAY FROM now())- 1 DAY ), '%Y-%m-%d %H:%i:%s' )
+                AND DATE_FORMAT( date_sub( date_format( now(), '%y-%m-%d 23:59:59' ), INTERVAL extract( DAY FROM now()) DAY ), '%Y-%m-%d %H:%i:%s' )
+            ) AS yesCount,
+            (
+            SELECT
+                count( id )
+            FROM
+                com_elders_auth_history_record
+            WHERE
+                community_id = ca.community_id
+                AND is_auth = 2
+                AND create_at BETWEEN DATE_FORMAT( date_sub( date_format( now(), '%y-%m-%d 00:00:00' ), INTERVAL extract( DAY FROM now())- 1 DAY ), '%Y-%m-%d %H:%i:%s' )
+                AND DATE_FORMAT( date_sub( date_format( now(), '%y-%m-%d 23:59:59' ), INTERVAL extract( DAY FROM now()) DAY ), '%Y-%m-%d %H:%i:%s' )
+            ) AS noCount
+        FROM
+            com_act AS ca
+        WHERE
+            community_id = #{communityId}
+    </select>
+
+    <select id="getEldersAuthRecords" resultType="com.panzhihua.common.model.vos.elders.ComEldersAuthHistoryVO">
+        SELECT
+            distinct
+            cea.id,
+            ceau.id as userId,
+            ceau.`name`,
+            ceae.id_card,
+            ceae.birthday,
+            ceae.domicile,
+            cea.CREATE_AT
+        FROM
+            com_elders_auth AS cea
+            LEFT JOIN com_elders_auth_user AS ceau ON ceau.id = cea.FAMILY_USER_ID
+            LEFT JOIN com_elders_auth_elderly AS ceae ON ceae.id = ceau.big_age_id
+        WHERE
+            type = 1 and ceau.community_id = #{communityId}
+            AND cea.CREATE_AT BETWEEN DATE_FORMAT( date_sub( date_format( now(), '%y-%m-%d 00:00:00' ), INTERVAL extract( DAY FROM now())- 1 DAY ), '%Y-%m-%d %H:%i:%s' )
+                AND DATE_FORMAT( date_sub( date_format( now(), '%y-%m-%d 23:59:59' ), INTERVAL extract( DAY FROM now()) DAY ), '%Y-%m-%d %H:%i:%s' )
+        order by cea.CREATE_AT desc
+    </select>
+
+    <select id="selectCommunityEldersRecordByPage" parameterType="com.panzhihua.common.model.dtos.community.PageEldersAuthRecordDTO"
+            resultType="com.panzhihua.common.model.vos.community.ComEldersAuthRecordForCommunityVO">
+        SELECT e.ID,e.CREATE_BY,e.CREATE_AT, e.UPDATE_BY, e.UPDATE_AT, e.ID_CARD, e.AUTH_USER_NAME, e.VIDEO_URL,
+        e.SUMIT_USER_ID, e.DOMICILE, e.STATUS, e.BIRTH_DAY, e.type, e.age, e.verification_result, u.name as sumitUserName, u.phone as sumitUserAccount
+        FROM (          SELECT MAX(id) AS id , DATE_FORMAT(create_at, '%Y-%m') AS yearMonth
+        FROM com_elders_auth           GROUP BY id_card, yearMonth          ) t
+        left join com_elders_auth e on t.id = e.id    LEFT JOIN sys_user u ON e.SUMIT_USER_ID = u.user_id
+        <where>
+           <if test='pageEldersAuthRecordDTO.name!=null'>
+            AND e.AUTH_USER_NAME like concat('%', #{pageEldersAuthRecordDTO.name}, '%')
+           </if>
+            <if test='pageEldersAuthRecordDTO.idCard!=null and pageEldersAuthRecordDTO.idCard!=&quot;&quot;'>
+                AND e.ID_CARD = #{pageEldersAuthRecordDTO.idCard}
+            </if>
+            <if test='pageEldersAuthRecordDTO.type!=null'>
+               AND e.type = #{pageEldersAuthRecordDTO.type}
+            </if>
+            <if test='pageEldersAuthRecordDTO.month!=null'>
+                AND month(e.CREATE_AT) = #{pageEldersAuthRecordDTO.month}
+            </if>
+            <if test='pageEldersAuthRecordDTO.year!=null'>
+                AND year(e.CREATE_AT) = #{pageEldersAuthRecordDTO.year}
+            </if>
+        </where>
+        <if test='pageEldersAuthRecordDTO.sortColumns!=null'>
+            ORDER BY e.${pageEldersAuthRecordDTO.sortColumns} ${pageEldersAuthRecordDTO.sortType}
+        </if>
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthElderlyMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthElderlyMapper.xml
index 8b18a6e..a8e33ec 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthElderlyMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthElderlyMapper.xml
@@ -95,10 +95,12 @@
 			<if test="isBigAge !=null">
 				is_big_age = #{isBigAge},
 			</if>
+			<if test="idCard !=null">
+				id_card = #{idCard},
+			</if>
+			update_at = now(),
 		</set>
-
 		where id = #{id}
-
 	</update>
 
 	<delete id="deleteEldersAuthUserById">
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthHistoryRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthHistoryRecordMapper.xml
index a555426..8ed6ee4 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthHistoryRecordMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthHistoryRecordMapper.xml
@@ -64,4 +64,92 @@
 		</if>
     </select>
 
+	<select id="pageAuthStatisticAdmin" parameterType="com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO"
+			resultType="com.panzhihua.common.model.vos.elders.ComEldersAuthStatisticVO">
+		SELECT
+			ceahr.id,
+			ceahr.phone,
+			ceahr.`name`,
+			ceahr.id_card,
+			ceahr.sex,
+			ceahr.age,
+			ceahr.personnel_category,
+			ceahr.is_alive,
+			ceahr.auth_period,
+			ceahr.auth_date,
+			ceahr.auth_method,
+			ceahr.mark,
+			ceahr.is_auth,
+			ceahr.submit_user_id,
+			IFNULL(su.nick_name,su.`name`) as submitUserName,
+			IFNULL(su1.nick_name,su1.`name`) as approvalName,
+			ceae.address,
+			cear.auth_video,
+			cear.approval_status,
+			ceahr.approver_id,
+			ceahr.approval_date,
+			ceahr.brithday
+		FROM
+			com_elders_auth_history_record AS ceahr
+			LEFT JOIN com_elder_auth_elderlies AS ceae ON ceae.id = ceahr.elderlies_id
+			left join sys_user as su on su.user_id = ceahr.submit_user_id
+			left join sys_user as su1 on su1.user_id = ceahr.approver_id
+			left join com_elder_auth_records as cear on cear.id = ceahr.auth_id
+		<where>
+			<if test="pageElderAuthStatisticDTO.keyWord != null and pageElderAuthStatisticDTO.keyWord !=&quot;&quot;">
+				and (ceahr.`name` like concat (#{pageElderAuthStatisticDTO.keyWord},'%') or
+				ceahr.id_card = #{pageElderAuthStatisticDTO.keyWord} or
+				ceahr.mark like concat (#{pageElderAuthStatisticDTO.keyWord},'%'))
+			</if>
+			<if test="pageElderAuthStatisticDTO.authPeriod != null and pageElderAuthStatisticDTO.authPeriod != &quot;&quot;">
+				and ceahr.auth_period = #{pageElderAuthStatisticDTO.authPeriod}
+			</if>
+			<if test="pageElderAuthStatisticDTO.authStatus != null">
+				and ceahr.is_auth = #{pageElderAuthStatisticDTO.authStatus}
+			</if>
+			<if test="pageElderAuthStatisticDTO.personnelCategory != null">
+				and ceahr.personnel_category = #{pageElderAuthStatisticDTO.personnelCategory}
+			</if>
+			<if test="pageElderAuthStatisticDTO.isAlive != null">
+				and ceahr.is_alive = #{pageElderAuthStatisticDTO.isAlive}
+			</if>
+			<if test="pageElderAuthStatisticDTO.communityId != null">
+				and ceahr.community_id = #{pageElderAuthStatisticDTO.communityId}
+			</if>
+		</where>
+		order by ceahr.create_at desc
+	</select>
+
+	<select id="getAuthHeaderStatisticAdmin" parameterType="com.panzhihua.common.model.dtos.community.elder.ElderAuthStatisticHeaderDTO"
+			resultType="com.panzhihua.common.model.vos.elders.ComEldersAuthStatisticHeaderVO">
+		SELECT
+			count( id ) AS allCount,
+			( SELECT count( id ) FROM com_elders_auth_history_record WHERE  is_auth = 1
+			<if test="statisticHeaderDTO.authPeriod != null and statisticHeaderDTO.authPeriod != &quot;&quot;">
+				and auth_period = #{statisticHeaderDTO.authPeriod}
+			</if>
+			<if test="statisticHeaderDTO.communityId != null">
+				and community_id = #{statisticHeaderDTO.communityId}
+			</if>
+			) AS yesCount,
+			( SELECT count( id ) FROM com_elders_auth_history_record WHERE  is_auth = 2
+			<if test="statisticHeaderDTO.authPeriod != null and statisticHeaderDTO.authPeriod != &quot;&quot;">
+				and auth_period = #{statisticHeaderDTO.authPeriod}
+			</if>
+			<if test="statisticHeaderDTO.communityId != null">
+				and community_id = #{statisticHeaderDTO.communityId}
+			</if>
+			) AS noCount
+		FROM
+			com_elders_auth_history_record
+		<where>
+			<if test="statisticHeaderDTO.authPeriod != null and statisticHeaderDTO.authPeriod != &quot;&quot;">
+				and auth_period = #{statisticHeaderDTO.authPeriod}
+			</if>
+			<if test="statisticHeaderDTO.communityId != null">
+				and community_id = #{statisticHeaderDTO.communityId}
+			</if>
+		</where>
+	</select>
+
 </mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthUserMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthUserMapper.xml
index 8eb0dd3..22a1359 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthUserMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthUserMapper.xml
@@ -45,5 +45,9 @@
 		WHERE FAMILY_USER_ID = #{elderId} AND DATE_FORMAT(create_at, '%Y-%m') =  DATE_FORMAT(NOW(), '%Y-%m')  AND  (`type` = 2 OR ( type=1 AND `STATUS` IS NULL) )
 	</select>
 
+	<update id="updateAuthStatus">
+		update com_elders_auth_user set is_auth = 2
+	</update>
+
 
 </mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthHistoryRecordDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthHistoryRecordDOMapper.xml
new file mode 100644
index 0000000..237cc59
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthHistoryRecordDOMapper.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComPensionAuthHistoryRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComPensionAuthHistoryRecordDO">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="name" property="name" />
+        <result column="id_card" property="idCard" />
+        <result column="brithday" property="brithday" />
+        <result column="age" property="age" />
+        <result column="domicile" property="domicile" />
+        <result column="is_auth" property="isAuth" />
+        <result column="create_at" property="createAt" />
+        <result column="community_id" property="communityId" />
+        <result column="elderlies_id" property="elderliesId" />
+        <result column="auth_period" property="authPeriod" />
+        <result column="submit_user_id" property="submitUserId" />
+        <result column="auth_method" property="authMethod" />
+        <result column="verification_result" property="verificationResult" />
+        <result column="mark" property="mark" />
+        <result column="is_alive" property="isAlive" />
+        <result column="sex" property="sex" />
+        <result column="auth_id" property="authId" />
+        <result column="phone" property="phone" />
+        <result column="auth_date" property="authDate" />
+        <result column="approval_date" property="approvalDate" />
+        <result column="approver_id" property="approverId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, user_id, name, id_card, brithday, age, domicile, is_auth, create_at, community_id, elderlies_id, auth_period, submit_user_id, auth_method, verification_result, mark, is_alive, sex, auth_id, phone, auth_date, approval_date, approver_id
+    </sql>
+
+    <select id="pageAuthStatisticAdmin" resultType="com.panzhihua.common.model.vos.elders.ComPensionAuthStatisticVO">
+        SELECT
+			cpahr.id,
+			cpahr.phone,
+			cpahr.`name`,
+			cpahr.id_card,
+			cpahr.sex,
+			cpahr.age,
+			cpahr.is_alive,
+			cpahr.auth_period,
+			cpahr.auth_date,
+			cpahr.auth_method,
+			cpahr.mark,
+			cpahr.is_auth,
+			cpahr.submit_user_id,
+			IFNULL(su.nick_name,su.`name`) as submitUserName,
+			IFNULL(su1.nick_name,su1.`name`) as approvalName,
+            cpap.address,
+            cpar.auth_video,
+            cpar.approval_status,
+			cpahr.approver_id,
+			cpahr.approval_date,
+			cpahr.brithday
+		FROM
+			com_pension_auth_history_record AS cpahr
+			LEFT JOIN com_pension_auth_pensioners AS cpap ON cpap.id = cpahr.elderlies_id
+			left join sys_user as su on su.user_id = cpahr.submit_user_id
+			left join sys_user as su1 on su1.user_id = cpahr.approver_id
+			left join com_pension_auth_records as cpar on cpar.id = cpahr.auth_id
+        <where>
+            <if test="pensionAuthStatisticDTO.keyWord != null and pensionAuthStatisticDTO.keyWord !=&quot;&quot;">
+                and (cpahr.`name` like concat (#{pensionAuthStatisticDTO.keyWord},'%') or
+                cpahr.id_card = #{pensionAuthStatisticDTO.keyWord} or
+                cpahr.mark like concat (#{pensionAuthStatisticDTO.keyWord},'%'))
+            </if>
+            <if test="pensionAuthStatisticDTO.authPeriod != null and pensionAuthStatisticDTO.authPeriod != &quot;&quot;">
+                and cpahr.auth_period = #{pensionAuthStatisticDTO.authPeriod}
+            </if>
+            <if test="pensionAuthStatisticDTO.authStatus != null">
+                and cpahr.is_auth = #{pensionAuthStatisticDTO.authStatus}
+            </if>
+            <if test="pensionAuthStatisticDTO.isAlive != null">
+                and cpahr.is_alive = #{pensionAuthStatisticDTO.isAlive}
+            </if>
+            <if test="pensionAuthStatisticDTO.communityId != null">
+                and cpahr.community_id = #{pensionAuthStatisticDTO.communityId}
+            </if>
+        </where>
+        order by cpahr.create_at desc
+    </select>
+
+    <select id="getAuthHeaderStatisticAdmin" parameterType="com.panzhihua.common.model.dtos.community.elder.ElderAuthStatisticHeaderDTO"
+            resultType="com.panzhihua.common.model.vos.elders.ComEldersAuthStatisticHeaderVO">
+        SELECT
+        count( id ) AS allCount,
+        ( SELECT count( id ) FROM com_pension_auth_history_record WHERE  is_auth = 1
+        <if test="statisticHeaderDTO.authPeriod != null and statisticHeaderDTO.authPeriod != &quot;&quot;">
+            and auth_period = #{statisticHeaderDTO.authPeriod}
+        </if>
+        <if test="statisticHeaderDTO.communityId != null">
+            and community_id = #{statisticHeaderDTO.communityId}
+        </if>
+        ) AS yesCount,
+        ( SELECT count( id ) FROM com_pension_auth_history_record WHERE  is_auth = 2
+        <if test="statisticHeaderDTO.authPeriod != null and statisticHeaderDTO.authPeriod != &quot;&quot;">
+            and auth_period = #{statisticHeaderDTO.authPeriod}
+        </if>
+        <if test="statisticHeaderDTO.communityId != null">
+            and community_id = #{statisticHeaderDTO.communityId}
+        </if>
+        ) AS noCount
+        FROM
+        com_pension_auth_history_record
+        <where>
+            <if test="statisticHeaderDTO.authPeriod != null and statisticHeaderDTO.authPeriod != &quot;&quot;">
+                and auth_period = #{statisticHeaderDTO.authPeriod}
+            </if>
+            <if test="statisticHeaderDTO.communityId != null">
+                and community_id = #{statisticHeaderDTO.communityId}
+            </if>
+        </where>
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthPensionerMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthPensionerMapper.xml
new file mode 100644
index 0000000..a1f3081
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthPensionerMapper.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComPensionAuthPensionerDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComPensionAuthPensionerDO">
+                <id column="id" property="id" />
+                <result column="population_id" property="populationId" />
+                <result column="street_id" property="streetId" />
+                <result column="community_id" property="communityId" />
+                <result column="phone" property="phone" />
+                <result column="name" property="name" />
+                <result column="id_card" property="idCard" />
+                <result column="sex" property="sex" />
+                <result column="age" property="age" />
+                <result column="birthday" property="birthday" />
+                <result column="personnel_category" property="personnelCategory" />
+                <result column="is_register" property="isRegister" />
+                <result column="is_alive" property="isAlive" />
+                <result column="address" property="address" />
+                <result column="remark" property="remark" />
+                <result column="receive_allowance_begin" property="receiveAllowanceBegin" />
+                <result column="create_at" property="createAt" />
+                <result column="create_by" property="createBy" />
+                <result column="update_at" property="updateAt" />
+                <result column="update_by" property="updateBy" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, population_id, street_id, community_id, phone, name, id_card, sex, age, birthday, personnel_category, is_register, is_alive, address, remark, receive_allowance_begin, create_at, create_by, update_at, update_by
+    </sql>
+
+    <select id="havePensionAuthPensionerAmount" resultType="java.lang.Integer">
+        SELECT
+            count( cpap.id )
+        FROM
+            com_pension_auth_pensioners cpap
+        WHERE
+            community_id = #{communityId}
+          AND EXISTS (
+                SELECT
+                    1
+                FROM
+                    com_pension_auth_records cpar
+                WHERE
+                    cpap.id = cpar.pensioner_id
+                  AND cpar.auth_status = 1
+                  AND cpar.auth_period = #{authPeriod})
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthRecordMapper.xml
new file mode 100644
index 0000000..9db1e66
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthRecordMapper.xml
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComPensionAuthRecordDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComPensionAuthRecordDO">
+                <id column="id" property="id" />
+                <result column="pensioner_id" property="pensionerId" />
+                <result column="auth_period" property="authPeriod" />
+                <result column="auth_method" property="authMethod" />
+                <result column="verification_result" property="verificationResult" />
+                <result column="submit_user_id" property="submitUserId" />
+                <result column="auth_video" property="authVideo" />
+                <result column="address" property="address" />
+                <result column="approver_id" property="approverId" />
+                <result column="approval_status" property="approvalStatus" />
+                <result column="approval_date" property="approvalDate" />
+                <result column="mark" property="mark" />
+                <result column="reject_reason" property="rejectReason" />
+                <result column="auth_status" property="authStatus" />
+                <result column="auth_date" property="authDate" />
+                <result column="create_at" property="createAt" />
+                <result column="update_at" property="updateAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, pensioner_id, auth_period, authMethod, verification_result, submit_user_id, auth_video, address, approver_id, approval_status, approval_date, mark, reject_reason, auth_status, auth_date, create_at, update_at
+    </sql>
+
+    <select id="pagePensionAuthRecords" resultType="com.panzhihua.common.model.vos.community.ComPensionAuthRecordVO">
+        SELECT
+        su.`name` submitUserName,
+        cpap.phone,
+        cpap.`name`,
+        cpap.id_card,
+        cpap.sex,
+        cpap.birthday,
+        cpap.personnel_category,
+        cpap.address,
+        cpap.is_alive,
+        cpar.auth_period,
+        cpar.auth_date,
+        cpar.auth_method,
+        cpar.mark,
+        cpar.approval_status,
+        cpar.id,
+        cpar.auth_status
+        FROM
+        com_pension_auth_records cpar
+        LEFT JOIN com_pension_auth_pensioners cpap ON cpar.pensioner_id = cpap.id
+        LEFT JOIN sys_user su ON cpar.submit_user_id = su.user_id
+        WHERE
+        cpap.community_id = #{pageElderAuthRecordsDTO.communityId}
+        <if test="pageElderAuthRecordsDTO.authPeriod != null and pageElderAuthRecordsDTO.authPeriod !=''">
+            and cpar.auth_period = #{pageElderAuthRecordsDTO.authPeriod}
+        </if>
+        <if test="pageElderAuthRecordsDTO.authMethod != null and pageElderAuthRecordsDTO.authMethod != 0">
+            and cpar.auth_method = #{pageElderAuthRecordsDTO.authMethod}
+        </if>
+        <if test="pageElderAuthRecordsDTO.authDateBegin != null and pageElderAuthRecordsDTO.authDateBegin != ''">
+            and cpar.auth_date after #{pageElderAuthRecordsDTO.authDateBegin}
+        </if>
+        <if test="pageElderAuthRecordsDTO.authDateEnd != null and pageElderAuthRecordsDTO.authDateEnd != ''">
+            and cpar.auth_date before #{pageElderAuthRecordsDTO.authDateEnd}
+        </if>
+        <if test="pageElderAuthRecordsDTO.approvalStatus != null and pageElderAuthRecordsDTO.approvalStatus != 0">
+            and cpar.approval_status = #{pageElderAuthRecordsDTO.approvalStatus}
+        </if>
+        <if test="pageElderAuthRecordsDTO.authStatus != null and pageElderAuthRecordsDTO.authStatus != 0">
+            and cpar.auth_status = #{pageElderAuthRecordsDTO.authStatus}
+        </if>
+        <if test="pageElderAuthRecordsDTO.personnelCategory != null and pageElderAuthRecordsDTO.personnelCategory != 0">
+            and cpap.personnel_category = #{pageElderAuthRecordsDTO.personnelCategory}
+        </if>
+        <if test="pageElderAuthRecordsDTO.isAlive != null and pageElderAuthRecordsDTO.isAlive != 0">
+            and cpap.is_alive = #{pageElderAuthRecordsDTO.isAlive}
+        </if>
+        <if test="pageElderAuthRecordsDTO.searchKey != null and pageElderAuthRecordsDTO.searchKey != ''">
+            and (cpap.`name` like concat ('%', #{pageElderAuthRecordsDTO.searchKey}, '%')
+            or  cpar.mark like concat ('%', #{pageElderAuthRecordsDTO.searchKey}, '%'))
+        </if>
+        order by cpar.create_at desc
+    </select>
+
+    <select id="detailPensionAuthRecords" resultType="com.panzhihua.common.model.vos.community.ComPensionAuthRecordVO">
+        SELECT
+            su.`name` submitUserName,
+            cpap.phone,
+            cpap.`name`,
+            cpap.id_card,
+            cpap.sex,
+            cpap.birthday,
+            cpap.personnel_category,
+            cpap.address,
+            cpap.is_alive,
+            cpar.auth_period,
+            cpar.auth_date,
+            cpar.mark,
+            cpar.auth_method,
+            cpar.auth_video,
+            cpar.approval_status,
+            su1.`name` as approverName,
+            cpar.approval_date
+        FROM
+            com_pension_auth_records cpar
+                LEFT JOIN com_pension_auth_pensioners cpap ON cpar.pensioner_id = cpap.id
+                LEFT JOIN sys_user su ON cpar.submit_user_id = su.user_id
+                LEFT JOIN sys_user su1 ON cpar.approver_id = su1.user_id
+        WHERE
+            cpar.id = #{authRecordId}
+    </select>
+
+    <select id="getPensionAuthRecordsByIds" resultType="com.panzhihua.common.model.vos.community.ComPensionAuthRecordExcleVO">
+        SELECT
+        su.`name` submitUserName,
+        cpap.phone,
+        cpap.`name`,
+        cpap.id_card,
+        CASE
+        cpap.sex
+        WHEN 1 THEN
+        '男'
+        WHEN 2 THEN
+        '女'
+        WHEN 3 THEN
+        '其他'
+        END sex,
+        cpap.birthday,
+        CASE
+        cpap.personnel_category
+        WHEN 1 THEN
+        '80-89周岁'
+        WHEN 2 THEN
+        '90-99周岁'
+        WHEN 3 THEN
+        '100周岁(含)以上'
+        END personnelCategory,
+        cpap.address,
+        CASE
+        cpap.isAlive
+        WHEN 1 THEN
+        '是'
+        WHEN 0 THEN
+        '否'
+        END is_alive,
+        cpar.auth_period,
+        cpar.auth_date,
+        CASE
+        cpar.auth_method
+        WHEN 1 THEN
+        '视频认证'
+        WHEN 2 THEN
+        '人脸认证'
+        END authMethod,
+        cpar.mark,
+        CASE
+        cpar.approval_status
+        WHEN 1 THEN
+        '待审核'
+        WHEN 2 THEN
+        '驳回'
+        WHEN 3 THEN
+        '通过'
+        END approvalStatus
+        FROM
+        com_pension_auth_records cpar
+        LEFT JOIN com_pension_auth_pensioners cpap ON cpar.pensioner_id = cpap.id
+        LEFT JOIN sys_user su ON cpar.submit_user_id = su.user_id
+        WHERE
+        cpar.id in
+        <foreach collection="ids" item="id" open="(" separator="," close=")" >
+            #{id}
+        </foreach>
+        order by cpar.create_at desc
+    </select>
+
+    <update id="updateAll" parameterType="java.util.List">
+        <foreach collection="comPensionAuthRecordDOS" item="item" index="index" separator=";">
+            update com_pension_auth_records
+            <set>
+                <if test="item.id != null">
+                    `id` = #{item.id},
+                </if>
+                <if test="item.pensionerId != null">
+                    `pensioner_id` = #{item.pensionerId},
+                </if>
+                <if test="item.authMethod != null and item.authMethod != 0">
+                    `auth_method` = #{item.authMethod},
+                </if>
+                <if test="item.authPeriod != null and item.authPeriod != '&quot;&quot;'">
+                    `auth_period` = #{item.authPeriod},
+                </if>
+                <if test="item.submitUserId != null">
+                    `submit_user_id` = #{item.submitUserId},
+                </if>
+                <if test="item.authVideo != null and item.authVideo != '&quot;&quot;'">
+                    `auth_video` = #{item.authVideo},
+                </if>
+                <if test="item.address != null and item.address != '&quot;&quot;'">
+                    `address` = #{item.address},
+                </if>
+                <if test="item.approverId != null">
+                    `approver_id` = #{item.approverId},
+                </if>
+                <if test="item.approvalStatus != null">
+                    `approval_status` = #{item.approvalStatus},
+                </if>
+                <if test="item.approvalDate != null">
+                    `approval_date` = #{item.approvalDate},
+                </if>
+                <if test="item.mark != null and item.mark != '&quot;&quot;'">
+                    `mark` = #{item.mark},
+                </if>
+                <if test="item.rejectReason != null and item.rejectReason != '&quot;&quot;'">
+                    `reject_reason` = #{item.rejectReason},
+                </if>
+                <if test="item.authStatus != null">
+                    `auth_status` = #{item.authStatus},
+                </if>
+                <if test="item.authDate != null">
+                    `auth_date` = #{item.authDate},
+                </if>
+                `update_at` = NOW()
+            </set>
+            WHERE `id` = #{item.id}
+        </foreach>
+        ;
+    </update>
+
+    <select id="exportPensionAuthRecordsStatistic" resultType="com.panzhihua.common.model.vos.community.ComPensionAuthRecordStatisticExcleVO">
+        SELECT
+        su.`name` submitUserName,
+        cpap.phone,
+        cpap.`name`,
+        cpap.id_card,
+        CASE
+        cpap.sex
+        WHEN 1 THEN
+        '男'
+        WHEN 2 THEN
+        '女'
+        WHEN 3 THEN
+        '其他'
+        END sex,
+        cpap.birthday,
+        CASE
+        cpap.personnel_category
+        WHEN 1 THEN
+        '80-89周岁'
+        WHEN 2 THEN
+        '90-99周岁'
+        WHEN 3 THEN
+        '100周岁(含)以上'
+        END personnelCategory,
+        cpap.address,
+        CASE
+        cpap.isAlive
+        WHEN 1 THEN
+        '是'
+        WHEN 0 THEN
+        '否'
+        END is_alive,
+        cpar.auth_period,
+        cpar.auth_date,
+        CASE
+        cpar.auth_method
+        WHEN 1 THEN
+        '视频认证'
+        WHEN 2 THEN
+        '人脸认证'
+        END authMethod,
+        cpar.mark,
+        CASE
+        cpar.auth_status
+        WHEN 1 THEN
+        '已认证'
+        WHEN 0 THEN
+        '未认证'
+        END authStatus
+        FROM
+        com_pension_auth_records cpar
+        LEFT JOIN com_pension_auth_pensioners cpap ON cpar.pensioner_id = cpap.id
+        LEFT JOIN sys_user su ON cpar.submit_user_id = su.user_id
+        WHERE
+        cpap.community_id = #{pageElderAuthRecordsDTO.communityId}
+        <if test="pageElderAuthRecordsDTO.authPeriod != null and pageElderAuthRecordsDTO.authPeriod !=''">
+            and cpar.auth_period = #{pageElderAuthRecordsDTO.authPeriod}
+        </if>
+        <if test="pageElderAuthRecordsDTO.authStatus != null and pageElderAuthRecordsDTO.authStatus != 0">
+            and cpar.auth_status = #{pageElderAuthRecordsDTO.authStatus}
+        </if>
+        <if test="pageElderAuthRecordsDTO.personnelCategory != null and pageElderAuthRecordsDTO.personnelCategory != 0">
+            and cpap.personnel_category = #{pageElderAuthRecordsDTO.personnelCategory}
+        </if>
+        <if test="pageElderAuthRecordsDTO.isAlive != null and pageElderAuthRecordsDTO.isAlive != 0">
+            and cpap.is_alive = #{pageElderAuthRecordsDTO.isAlive}
+        </if>
+        <if test="pageElderAuthRecordsDTO.searchKey != null and pageElderAuthRecordsDTO.searchKey != ''">
+            and (cpap.`name` like concat ('%', #{pageElderAuthRecordsDTO.searchKey}, '%')
+            or  cpar.mark like concat ('%', #{pageElderAuthRecordsDTO.searchKey}, '%'))
+        </if>
+        order by cpar.create_at desc
+    </select>
+
+    <select id="queryRecordWithPage" resultType="com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO">
+        SELECT
+            cpar.id,
+            cpar.auth_period,
+            cpar.auth_date,
+            cpar.reject_reason,
+            cpar.approval_status,
+            cpap.name,
+            cpap.id_card
+        FROM `com_pension_auth_records` cpar
+        LEFT JOIN `com_pension_auth_pensioners` cpap ON cpar.pensioner_id = cpap.id
+        WHERE cpar.submit_user_id = #{pageIdentityAuthRecordDTO.submitUserId}
+        ORDER BY cpar.id DESC
+    </select>
+    <select id="findById" resultType="com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO">
+        SELECT
+            cpap.name,
+            cpap.id_card,
+            ca.name AS communityName,
+            cpar.address,
+            cpar.auth_period,
+            cpar.auth_date,
+            cpar.auth_video,
+            cpar.reject_reason,
+            cpar.approval_status
+        FROM `com_pension_auth_records` cpar
+        LEFT JOIN `com_pension_auth_pensioners` cpap ON cpar.pensioner_id = cpap.id
+        LEFT JOIN `com_act` ca ON cpap.community_id = ca.community_id
+        WHERE cpar.id = #{identityAuthId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthStatisticsMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthStatisticsMapper.xml
new file mode 100644
index 0000000..9c70c4c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthStatisticsMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_community.dao.ComPensionAuthStatisticsDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComPensionAuthStatisticsDO">
+                <id column="id" property="id" />
+                <result column="year" property="year" />
+                <result column="month" property="month" />
+                <result column="sum" property="sum" />
+                <result column="auth_sum" property="authSum" />
+                <result column="no_auth_sum" property="noAuthSum" />
+                <result column="create_at" property="createAt" />
+                <result column="community_id" property="communityId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, year, month, sum, auth_sum, no_auth_sum, create_at, community_id
+    </sql>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwDangerReportMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwDangerReportMapper.xml
index 9d12b44..40f8f26 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwDangerReportMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwDangerReportMapper.xml
@@ -172,5 +172,6 @@
         <foreach collection="dangerReportIds" item="item" open="(" close=")" separator=",">
             #{item}
         </foreach>
+        order by csdr.create_at desc
     </select>
 </mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/SysConfMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/SysConfMapper.xml
index aa57d75..0f1b595 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/SysConfMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/SysConfMapper.xml
@@ -60,4 +60,9 @@
 		</if>
     </select>
 
+	<select id="getSysConfValue" resultType="string">
+		SELECT `value` FROM `sys_conf` where `code` = #{key}
+		<if test="communityId != null"> and community_id = #{communityId} </if>
+	</select>
+
 </mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/test/java/com/panzhihua/service_community/ServiceCommunityApplicationTests.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/test/java/com/panzhihua/service_community/ServiceCommunityApplicationTests.java
index 528a571..f89d88b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/test/java/com/panzhihua/service_community/ServiceCommunityApplicationTests.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/test/java/com/panzhihua/service_community/ServiceCommunityApplicationTests.java
@@ -1,9 +1,12 @@
 package com.panzhihua.service_community;
 
+import com.panzhihua.common.utlis.DateUtils;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 
 import lombok.extern.slf4j.Slf4j;
+
+import java.util.Date;
 
 @Slf4j
 @SpringBootTest
@@ -14,4 +17,11 @@
         log.info("test");
     }
 
+    @Test
+    void test() {
+        log.info(String.valueOf(DateUtils.getYear(new Date())));
+        log.info(String.valueOf(DateUtils.getMonth(new Date())));
+        log.info(String.valueOf(DateUtils.getYear(new Date())) + 0 + DateUtils.getMonth(new Date()));
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/service_property/pom.xml
index 53daccc..9a6d267 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_property/pom.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/pom.xml
@@ -120,7 +120,7 @@
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
                 <configuration>
-                    <mainClass>com.panzhihua.service_property.ServiceCommunityApplication</mainClass>
+                    <mainClass>com.panzhihua.service_property.ServicePropertyApplication</mainClass>
                 </configuration>
                 <executions>
                     <execution>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServer.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServer.java
index 50c342a..21ae8f0 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServer.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServer.java
@@ -14,7 +14,7 @@
 
 @Slf4j
 public class NettyServer {
-    private static Integer port=20012;
+    private static final Integer port=20012;
     public void start() {
         //new 一个主线程组
         EventLoopGroup bossGroup = new NioEventLoopGroup(1);
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServerHandler.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServerHandler.java
index 2dcc215..4030931 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServerHandler.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServerHandler.java
@@ -40,6 +40,7 @@
     private RabbitTemplate rabbitTemplate;
 
     private static NettyServerHandler nettyServerHandler;
+
     /**
      * 客户端连接会触发
      */
@@ -53,24 +54,31 @@
      */
     @Override
     public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
-        MyTools myTools=new MyTools();
+        MyTools myTools = new MyTools();
         log.info("服务器收到消息: {}", msg.toString());
-        if(msg.toString().startsWith("4A1802")){
-            myTools.writeToClient("404A021823",ctx,"状态包");
+        if (msg.toString().startsWith("4A1802")) {
+            myTools.writeToClient("404A021823", ctx, "状态包");
         }
-        if(msg.toString().startsWith("4A0C0134")){
-            myTools.writeToClient("404A01"+ DateUtils.getDateFormatString(new Date(),"HHmmss")+"23",ctx,"心跳包");
+        if (msg.toString().startsWith("4A0C0134")) {
+            myTools.writeToClient("404A01" + DateUtils.getDateFormatString(new Date(), "HHmmss") + "23", ctx, "心跳包");
         }
-        if(msg.toString().startsWith("4A1803")){
-            String serial=msg.toString().substring(14,24);
-            myTools.writeToClient("404A03"+msg.toString().substring(msg.toString().length()-2)+"23",ctx,"事件包");
+        if (msg.toString().startsWith("4A1803")) {
+            String serial = msg.toString().substring(14, 24);
+            myTools.writeToClient("404A03" + msg.toString().substring(msg.toString().length() - 2) + "23", ctx, "事件包");
 //            ComPropertyAlarm comPropertyAlarm=new ComPropertyAlarm();
 //            comPropertyAlarm.setCreateTime(DateUtil.date());
 //            comPropertyAlarm.setSerialNo(serial);
 //            comPropertyAlarm.setType(ComPropertyAlarm.type.one);
 //            nettyServerHandler.comPropertyAlarmDao.insert(comPropertyAlarm);
-            if(msg.toString().startsWith("4A18031")){
-                delayAlarm(serial);
+            if (msg.toString().startsWith("4A18031")) {
+                //正式处理
+                // delayAlarm(serial);
+                //展会处理
+                ComPropertyAlarm comPropertyAlarm = new ComPropertyAlarm();
+                comPropertyAlarm.setCreateTime(DateUtil.date());
+                comPropertyAlarm.setSerialNo(serial);
+                comPropertyAlarm.setType(ComPropertyAlarm.type.one);
+                nettyServerHandler.comPropertyAlarmDao.insert(comPropertyAlarm);
             }
 
         }
@@ -88,30 +96,30 @@
 
     @PostConstruct
     public void init() {
-        nettyServerHandler=this;
-        nettyServerHandler.comPropertyAlarmDao=this.comPropertyAlarmDao;
-        nettyServerHandler.stringRedisTemplate=this.stringRedisTemplate;
-        nettyServerHandler.rabbitTemplate=this.rabbitTemplate;
+        nettyServerHandler = this;
+        nettyServerHandler.comPropertyAlarmDao = this.comPropertyAlarmDao;
+        nettyServerHandler.stringRedisTemplate = this.stringRedisTemplate;
+        nettyServerHandler.rabbitTemplate = this.rabbitTemplate;
     }
-    //报警事件包延迟处理方法
-    private void delayAlarm(String serial){
-        int duration=0;
-        if(StringUtils.isNotEmpty(serial)){
 
-            ComPropertyEquipment comPropertyEquipment=new ComPropertyEquipment();
-            if (nettyServerHandler.stringRedisTemplate.hasKey(serial)){
-                comPropertyEquipment= JSONObject.parseObject(nettyServerHandler.stringRedisTemplate.boundValueOps(serial).get(),ComPropertyEquipment.class);
+    //报警事件包延迟处理方法
+    private void delayAlarm(String serial) {
+        int duration = 0;
+        if (StringUtils.isNotEmpty(serial)) {
+
+            ComPropertyEquipment comPropertyEquipment = new ComPropertyEquipment();
+            if (nettyServerHandler.stringRedisTemplate.hasKey(serial)) {
+                comPropertyEquipment = JSONObject.parseObject(nettyServerHandler.stringRedisTemplate.boundValueOps(serial).get(), ComPropertyEquipment.class);
                 duration = getDuration(Objects.requireNonNull(comPropertyEquipment));
                 nettyServerHandler.stringRedisTemplate.boundValueOps(serial).set(JSONObject.toJSONString(comPropertyEquipment), Duration.ofHours(duration));
-            }
-            else {
-                comPropertyEquipment=nettyServerHandler.comPropertyEquipmentDao.selectOne(new QueryWrapper<ComPropertyEquipment>().eq("serial_no",serial));
+            } else {
+                comPropertyEquipment = nettyServerHandler.comPropertyEquipmentDao.selectOne(new QueryWrapper<ComPropertyEquipment>().eq("serial_no", serial));
                 duration = getDuration(comPropertyEquipment);
                 nettyServerHandler.stringRedisTemplate.boundValueOps(serial).set(JSONObject.toJSONString(comPropertyEquipment));
             }
             int finalDuration = duration;
-            nettyServerHandler.rabbitTemplate.convertAndSend("delayed.exchange","delayed.key",comPropertyEquipment, message -> {
-                message.getMessageProperties().setHeader("x-delay", finalDuration*1000*3601);
+            nettyServerHandler.rabbitTemplate.convertAndSend("delayed.exchange", "delayed.key", comPropertyEquipment, message -> {
+                message.getMessageProperties().setHeader("x-delay", finalDuration * 1000 * 3601);
                 return message;
             });
         }
@@ -119,11 +127,11 @@
 
     private int getDuration(ComPropertyEquipment comPropertyEquipment) {
         int duration;
-        if(nettyServerHandler.stringRedisTemplate.hasKey(comPropertyEquipment.getCommunityId().toString())){
-            duration=Integer.parseInt(nettyServerHandler.stringRedisTemplate.boundValueOps(comPropertyEquipment.getCommunityId().toString()).get());
-        }else{
-            ComPropertyAlarmSetting comPropertyAlarmSetting=nettyServerHandler.comPropertyAlarmSettingDao.getByCommunityId(comPropertyEquipment.getCommunityId());
-            duration=comPropertyAlarmSetting.getTriggerTime();
+        if (nettyServerHandler.stringRedisTemplate.hasKey(comPropertyEquipment.getCommunityId().toString())) {
+            duration = Integer.parseInt(nettyServerHandler.stringRedisTemplate.boundValueOps(comPropertyEquipment.getCommunityId().toString()).get());
+        } else {
+            ComPropertyAlarmSetting comPropertyAlarmSetting = nettyServerHandler.comPropertyAlarmSettingDao.getByCommunityId(comPropertyEquipment.getCommunityId());
+            duration = comPropertyAlarmSetting.getTriggerTime();
             nettyServerHandler.stringRedisTemplate.boundValueOps(comPropertyEquipment.getCommunityId().toString()).set(comPropertyAlarmSetting.getTriggerTime().toString());
         }
         return duration;
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java
index 7113ae0..68fdaa7 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java
@@ -216,8 +216,8 @@
      * @return 标签集合
      */
     @PostMapping("listtag/getTag")
-    public R listTags(@RequestParam("communityId") Long communityId) {
-        return userService.listTags(communityId);
+    public R listTags() {
+        return userService.listTags();
     }
 
     /**
@@ -1137,4 +1137,14 @@
         return userService.getUserListByCommunityId(communityId);
     }
 
+    /**
+     * 检查当前用户是否是社区工作人员
+     * @param phone
+     * @param communityId
+     * @return
+     */
+    @GetMapping("checkIsTeam")
+    public R checkCurrentUserIsTeam(String phone, Long communityId) {
+        return userService.checkCurrentUserIsTeam(phone, communityId);
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComMngUserTagDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComMngUserTagDAO.java
index 98af594..af8d2a8 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComMngUserTagDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComMngUserTagDAO.java
@@ -2,7 +2,6 @@
 
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -26,11 +25,6 @@
      * @param comMngUserTagDTO
      * @return
      */
-    @Select("<script> " + " SELECT " + " t.*  " + "FROM " + " com_mng_user_tag t  " + "WHERE "
-        + " community_id IN ( 0, #{comMngUserTagDTO.communityId} )  "
-        + "<if test='comMngUserTagDTO.tagName != null and comMngUserTagDTO.tagName.trim() != &quot;&quot;'>"
-        + " and t.tag_name like concat('%',#{comMngUserTagDTO.tagName},'%')  \n" + " </if> " + "ORDER BY "
-        + " t.sys_flag DESC" + "</script> ")
     IPage<ComMngTagVO> pageSpecialInputUserTags(Page page,
         @Param(value = "comMngUserTagDTO") ComMngUserTagDTO comMngUserTagDTO);
 
@@ -40,9 +34,5 @@
      * @param comMngTagVO
      * @return
      */
-    @Select("<script> " + " SELECT " + " t.*  " + "FROM " + " com_mng_user_tag t  " + "WHERE "
-        + " community_id = #{comMngTagVO.communityId} "
-        + "<if test='comMngTagVO.tagName != null and comMngTagVO.tagName.trim() != &quot;&quot;'>"
-        + " and t.tag_name = #{comMngTagVO.tagName} " + " </if> " + "</script> ")
     ComMngUserTagDO getSpecialInputUserTagsByVO(@Param(value = "comMngTagVO") ComMngTagVO comMngTagVO);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/RoleDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/RoleDAO.java
index 0388896..b3fef7d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/RoleDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/RoleDAO.java
@@ -3,7 +3,6 @@
 import java.util.List;
 
 import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Select;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -18,18 +17,18 @@
  **/
 @Mapper
 public interface RoleDAO extends BaseMapper<SysRoleDO> {
-    @Select("select r.* from sys_user_role u join sys_role r on u.role_id=r.role_id where u.user_id=#{userId}")
+
     List<SysRoleDO> selectByUserId(Long userId);
 
-    @Select("select r.role_key role,m.component url from sys_role r join sys_role_menu rm on r.role_id=rm.role_id join sys_menu m on rm.menu_id=m.menu_id WHERE m.component is not null ")
+
     List<MenuVO> selectAllMenuUrl();
 
-    @Select("select r.role_key from sys_user_role ur join sys_role r on ur.role_id = r.role_id where ur.user_id=#{username}")
+
     List<String> selectRoles(String username);
 
-    @Select("")
+
     Long selectMaxRole(Long communityId);
 
-    @Select("delete from sys_role where role_key =#{roleKey}")
+
     void deleteByRoleKey(@RequestParam("roleKey") String roleKey);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysOperLogDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysOperLogDAO.java
index 8fc071a..c5814ab 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysOperLogDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysOperLogDAO.java
@@ -2,7 +2,6 @@
 
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -18,6 +17,6 @@
  **/
 @Mapper
 public interface SysOperLogDAO extends BaseMapper<SysOperLogDO> {
-    @Select("select * from sys_oper_log where community_id=#{sysOperLogVO.communityId} order by oper_time desc ")
+
     IPage<SysOperLogVO> pageOperLog(Page page, @Param("sysOperLogVO") SysOperLogVO sysOperLogVO);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserFeedbackDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserFeedbackDAO.java
index 79982b5..c2dadaa 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserFeedbackDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserFeedbackDAO.java
@@ -2,7 +2,6 @@
 
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -19,32 +18,9 @@
  **/
 @Mapper
 public interface SysUserFeedbackDAO extends BaseMapper<SysUserFeedbackDO> {
-    // @Select("<script> " +
-    // " <where>" +
-    // "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
-    // " </if> " +
-    // "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
-    // " </if> " +
-    // "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
-    // " </if> " +
-    // " </where>" +
-    // "</script>")
 
-    @Select("<script> " + "select \n" + "u.name,\n" + "u.nick_name,\n" + "f.id,\n" + "u.phone,\n" + "f.create_at,\n"
-        + "f.content,\n" + "f.photo_path,\n" + "c.name communityName\n" + "from sys_user_feedback f\n"
-        + "left join sys_user u on f.user_id=u.user_id\n" + "left join com_act c on u.community_id=c.community_id\n"
-        + "<where>" + "<if test='pageFeedBackDTO.phone != null and pageFeedBackDTO.phone.trim() != &quot;&quot;'>"
-        + "and u.phone like concat('%',#{pageFeedBackDTO.phone},'%') \n" + " </if> "
-        + "<if test='pageFeedBackDTO.name != null and pageFeedBackDTO.name.trim() != &quot;&quot;'>"
-        + "and u.name like concat('%',#{pageFeedBackDTO.name},'%')   \n" + " </if> "
-        + "<if test='pageFeedBackDTO.nickName != null and pageFeedBackDTO.nickName.trim() != &quot;&quot;'>"
-        + "and u.nick_name like concat('%',#{pageFeedBackDTO.nickName},'%') \n" + " </if> " + "</where> "
-        + "order by f.create_at desc\n" + "</script>")
     IPage<SysUserFeedbackVO> pageFeedback(Page page, @Param("pageFeedBackDTO") PageFeedBackDTO pageFeedBackDTO);
 
-    @Select("select \n" + "u.name,\n" + "u.nick_name,\n" + "f.id,\n" + "f.content,\n" + "f.photo_path,\n" + "u.phone,\n"
-        + "f.create_at,\n" + "c.name communityName\n" + "from sys_user_feedback f\n"
-        + "join sys_user u on f.user_id=u.user_id\n" + "join com_act c on u.community_id=c.community_id\n"
-        + "where f.id=#{id}\n")
+
     SysUserFeedbackVO detailFeedback(Long id);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserInputDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserInputDAO.java
index 593b0be..0a39ce2 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserInputDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserInputDAO.java
@@ -4,7 +4,6 @@
 
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -27,130 +26,30 @@
  **/
 @Mapper
 public interface SysUserInputDAO extends BaseMapper<SysUserInputDO> {
-    // @Select("<script> " +
-    // " <where>" +
-    // "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
-    // " </if> " +
-    // "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
-    // " </if> " +
-    // "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
-    // " </if> " +
-    // " </where>" +
-    // "</script>")
-    @Select("select a.id,a.community_id from com_mng_struct_area a where a.area_name=#{areaName}")
+
     ComMngStructAreaVO selectByAreaName(String areaName);
 
-    @Select("SELECT  "
-        + "REPLACE(REPLACE(REPLACE(REPLACE(h.house_name,a.address_detail,''),'栋','-'),'单元','-'),'层','-')houseName, "
-        + "h.house_code " + "FROM " + " com_mng_struct_area a  "
-        + " join com_mng_struct_house h on h.house_name like CONCAT(a.address_detail,'%') and h.type=5 " + "WHERE "
-        + " a.area_name = #{areaName}")
+
     List<ComMngStructHouseVO> selectHouserByareaName(String areaName);
 
-    @Select("SELECT  " + "p.name, " + "p.id, " + "if(p.is_rent=1,'合租','家人')relationship, " + "p.id_card, " + "p.phone, "
-        + "year(curdate())-if(length(p.id_card)=18,substring(p.id_card,7,4),if(length(p.id_card)=15,concat('19',substring(p.id_card,7,2)),null)) as age, "
-        + "p.create_at " + "FROM " + " sys_user_input p  " + "WHERE " + " p.door_number = #{doorNumber}  "
-        + " AND p.id !=#{userId}")
+
     List<ComMngFamilyInfoVO> selectListFamily(@Param("doorNumber") String doorNumber, @Param("userId") Long userId);
 
-    @Select("<script> " + "SELECT " + " t.id, " + " t.`name`, " + "CASE " + " IF " + "  ( "
-        + "   length( t.id_card ) = 18, " + "   cast( substring( t.id_card, 17, 1 ) AS UNSIGNED ) % 2, " + "  IF "
-        + "   ( " + "    length( t.id_card ) = 15, " + "    cast( substring( t.id_card, 15, 1 ) AS UNSIGNED ) % 2, "
-        + "    3  " + "   )  " + "  )  " + "  WHEN 1 THEN " + "  1  " + "  WHEN 0 THEN " + "  2 ELSE 0  "
-        + " END AS sex, " + " t.phone, " + " YEAR ( now( ) ) - YEAR ( substring( t.id_card, 7, 8 ) ) age, "
-        + " t1.area_name as areaName, " + " t.political_outlook politicalOutlook, " + " CONCAT( " + " IF "
-        + "  ( t.soldier = 1, '军人,', '' ), " + " IF " + "  ( t.lowIncome_households = 1, '低保户,', '' ), " + " IF "
-        + "  ( t.lowIncome_people = 1, '低收入,', '' ), " + " IF " + "  ( t.old_people = 1, '特服家庭,', '' ), " + " IF "
-        + "  ( t.key_personnel = 1, '重点人员,', '' )  " + " ) tags,  " + " t.create_at  as createAt " + "FROM "
-        + " sys_user_input t " + " LEFT JOIN com_mng_struct_area t1 ON t.area_id = t1.id  " + "WHERE "
-        + " t.community_id = #{pageInputUserDTO.communityId}"
-        + "<if test='pageInputUserDTO.name != null and pageInputUserDTO.name.trim() != &quot;&quot;'>"
-        + " and t.`name` like concat(#{pageInputUserDTO.name},'%')  " + " </if> "
-        + "<if test='pageInputUserDTO.phone != null and pageInputUserDTO.phone.trim() != &quot;&quot;'>"
-        + " and t.phone like concat(#{pageInputUserDTO.phone},'%')  " + " </if> "
-        + "<if test='pageInputUserDTO.areaName != null and pageInputUserDTO.areaName.trim() != &quot;&quot;'>"
-        + "AND t1.`area_name` like concat(#{pageInputUserDTO.areaName},'%')   " + " </if> " + " group by t.id_card "
-        + "</script>")
+
     IPage<InputUserInfoVO> pageInputUser(Page page, @Param("pageInputUserDTO") PageInputUserDTO pageInputUserDTO);
 
-    @Select("select a.id,a.community_id,a.area_name,address_detail from com_mng_struct_area a where a.community_id=#{communityId}")
+
     List<ComMngStructAreaVO> selectComMngStructArea(@Param("communityId") Long communityId);
 
-    @Select("<script> " + "SELECT * FROM ( " + " SELECT " + " t.id, " + " t.`name`, " + "CASE " + " IF " + "  ( "
-        + "   length( t.id_card ) = 18, " + "   cast( substring( t.id_card, 17, 1 ) AS UNSIGNED ) % 2, " + "  IF "
-        + "   ( " + "    length( t.id_card ) = 15, " + "    cast( substring( t.id_card, 15, 1 ) AS UNSIGNED ) % 2, "
-        + "    3  " + "   )  " + "  )  " + "  WHEN 1 THEN " + "  1  " + "  WHEN 0 THEN " + "  2 ELSE 0  "
-        + " END AS sex, " + " t.phone, " + " YEAR ( now( ) ) - YEAR ( substring( t.id_card, 7, 8 ) ) age, "
-        + " t1.area_name as areaName, " + " t.political_outlook politicalOutlook, " + " CONCAT( " + " IF "
-        + "  ( t.soldier = 1, '军人,', '' ), " + " IF " + "  ( t.lowIncome_households = 1, '低保户,', '' ), " + " IF "
-        + "  ( t.lowIncome_people = 1, '低收入,', '' ), " + " IF " + "  ( t.old_people = 1, '特服家庭,', '' ), " + " IF "
-        + "  ( t.key_personnel = 1, '重点人员,', '' ),  " + "  IFNULL(t.tags,'')  " + " ) tags,  "
-        + " t2.house_name  as address, " + " t.create_at  as createAt " + "FROM " + " sys_user_input t "
-        + " LEFT JOIN com_mng_struct_area t1 ON t.area_id = t1.id  "
-        + " LEFT JOIN com_mng_struct_house t2 ON t.house_code = t2.house_code " + "WHERE "
-        + " t.community_id = #{pageInputUserDTO.communityId}" + " AND "
-        + "(t.soldier=1 OR t.lowIncome_households=1 OR t.lowIncome_people=1 or t.old_people=1 OR t.special_service_family=1 OR t.key_personnel=1 OR (t.tags IS NOT NULL AND TRIM(t.tags)!=''))"
-        + "<if test='pageInputUserDTO.name != null and pageInputUserDTO.name.trim() != &quot;&quot;'>"
-        + " and t.`name` like concat(#{pageInputUserDTO.name},'%')  " + " </if> "
-        + "<if test='pageInputUserDTO.phone != null and pageInputUserDTO.phone.trim() != &quot;&quot;'>"
-        + " and t.phone like concat(#{pageInputUserDTO.phone},'%')  " + " </if> "
-        + "<if test='pageInputUserDTO.areaName != null and pageInputUserDTO.areaName.trim() != &quot;&quot;'>"
-        + "AND t1.`area_name` like concat(#{pageInputUserDTO.areaName},'%')   " + " </if> " + " group by t.id_card "
-        + " ) tt  WHERE 1=1 "
-        + "<if test='pageInputUserDTO.tags != null and pageInputUserDTO.tags.trim() != &quot;&quot;'>"
-        + " and tt.tags like concat('%',#{pageInputUserDTO.tags},'%')  " + " </if> " + "</script>")
+
     IPage<InputUserInfoVO> specialInputUser(Page page, @Param("pageInputUserDTO") PageInputUserDTO pageInputUserDTO);
 
-    @Select("" + "SELECT " + " t1.house_code houseCode, " + " t1.house_name houseName, " + " t1.square, " + " t1.state "
-        + "FROM " + " sys_user_input t  " + " LEFT JOIN com_mng_struct_house t1 ON t.house_code = t1.house_code "
-        + " WHERE" + " t.id_card = #{idCard}")
+
     List<ComMngStructHouseVO> selectUserHouseList(@Param("idCard") String idCard);
 
-    @Select("<script> " + "SELECT  " + "u.id 'order', " + "c.`area_name` areaName, " + "u.door_number doorNumber, "
-        + "if(u.is_rent=1,'租住','自主')isRent, " + "u.name, " + "u.nation, "
-        + "case u.political_outlook when 1 then '党员'  when 2 then '团员' else '群众' end politicalOutlook, "
-        + "if(u.marital_status=1,'已婚','未婚')maritalStatus, " + "u.phone, " + "u.education, " + "u.id_card, "
-        + "u.company, " + "u.residence, " + "if(u.is_panzhiHua=1,'是','否') isPanZhiHua, " + "u.situation, "
-        + "if(is_contact=1,'是','否') isContact, " + "if(u.major=1,'是','否') major, " + "if(u.soldier=1,'是','否') soldier, "
-        + "if(u.disability=1,'是','否') disability, " + "if(u.lowIncome_households=1,'是','否') lowIncomeHouseholds, "
-        + "if(u.lowIncome_people=1,'是','否') lowIncomePeople, " + "if(u.old_people=1,'是','否') oldPeople, "
-        + "if(u.special_service_family=1,'是','否') specialServiceFamily, "
-        + "if(u.key_personnel=1,'是','否') keyPersonnel, " + "u.tags " + "FROM " + " sys_user_input u "
-        + " where u.community_id=#{exportUserDTO.communityId} "
-        + "<if test='exportUserDTO.areaName != null and exportUserDTO.areaName.trim() != &quot;&quot;'>"
-        + " JOIN com_mng_struct_area c ON u.area_id = c.id  " + " </if> "
-        + "<if test='exportUserDTO.areaName == null or exportUserDTO.areaName.trim() == &quot;&quot;'>"
-        + "LEFT JOIN com_mng_struct_area c ON u.area_id = c.id  " + " </if> "
-        + "<if test='exportUserDTO.areaName != null and exportUserDTO.areaName.trim() != &quot;&quot;'>"
-        + "AND c.`area_name` like concat(#{exportUserDTO.areaName},'%')   " + " </if> "
-        + "<if test='exportUserDTO.phone != null and exportUserDTO.phone.trim() != &quot;&quot;'>"
-        + "AND u.phone like concat(#{exportUserDTO.phone},'%') " + " </if> "
-        + "<if test='exportUserDTO.name != null and exportUserDTO.name.trim() != &quot;&quot;'>"
-        + " and u.`name` like concat(#{exportUserDTO.name},'%')   " + " </if> " + "</script>")
+
     List<EexcelUserDTO> selectExport(@Param("exportUserDTO") ExportUserDTO exportUserDTO);
 
-    @Select("<script> " + "SELECT  " + "u.id 'order', " + "c.`area_name` areaName, " + "u.door_number doorNumber, "
-        + "if(u.is_rent=1,'租住','自主')isRent, " + "u.name, " + "u.nation, "
-        + "case u.political_outlook when 1 then '党员'  when 2 then '团员' else '群众' end politicalOutlook, "
-        + "if(u.marital_status=1,'已婚','未婚')maritalStatus, " + "u.phone, " + "u.education, " + "u.id_card, "
-        + "u.company, " + "u.residence, " + "if(u.is_panzhiHua=1,'是','否') isPanZhiHua, " + "u.situation, "
-        + "if(is_contact=1,'是','否') isContact, " + "if(u.major=1,'是','否') major, " + "if(u.soldier=1,'是','否') soldier, "
-        + "if(u.disability=1,'是','否') disability, " + "if(u.lowIncome_households=1,'是','否') lowIncomeHouseholds, "
-        + "if(u.lowIncome_people=1,'是','否') lowIncomePeople, " + "if(u.old_people=1,'是','否') oldPeople, "
-        + "if(u.special_service_family=1,'是','否') specialServiceFamily, "
-        + "if(u.key_personnel=1,'是','否') keyPersonnel, " + "u.tags " + "FROM " + " sys_user_input u "
-        + " JOIN com_mng_struct_area c ON u.area_id = c.id  "
-        + " where u.community_id=#{exportSpecialUserDTO.communityId} "
-        + "<if test='exportSpecialUserDTO.areaName != null and exportSpecialUserDTO.areaName.trim() != &quot;&quot;'>"
-        + "AND c.`area_name` like concat(#{exportUserDTO.areaName},'%')   " + " </if> "
-        + "<if test='exportSpecialUserDTO.name != null and exportSpecialUserDTO.name.trim() != &quot;&quot;'>"
-        + " and u.`name` like concat(#{exportSpecialUserDTO.name},'%')   " + " </if> "
-        + "<if test='exportSpecialUserDTO.name != null and exportSpecialUserDTO.name.trim() != &quot;&quot;'>"
-        + " and u.`name` like concat(#{exportSpecialUserDTO.name},'%')   " + " </if> "
-        + "<if test='exportSpecialUserDTO.tags != null and exportSpecialUserDTO.tags.trim() != &quot;&quot;'>"
-        + " CONCAT( " + " IF " + "  ( t.soldier = 1, '军人,', '' ), " + " IF "
-        + "  ( t.lowIncome_households = 1, '低保户,', '' ), " + " IF " + "  ( t.lowIncome_people = 1, '低收入,', '' ), "
-        + " IF " + "  ( t.old_people = 1, '特服家庭,', '' ), " + " IF " + "  ( t.key_personnel = 1, '重点人员,', '' ),  "
-        + "  IFNULL(t.tags,'')  " + " ) like concat(#{exportSpecialUserDTO.tags},'%')" + " </if> " + "</script>")
+
     List<EexcelUserDTO> specialUserExport(@Param("exportSpecialUserDTO") ExportSpecialUserDTO exportSpecialUserDTO);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserNoticeDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserNoticeDAO.java
index 64e93f9..33e1dee 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserNoticeDAO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserNoticeDAO.java
@@ -1,7 +1,6 @@
 package com.panzhihua.service_user.dao;
 
 import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Select;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.panzhihua.common.model.vos.user.NoticeUnReadVO;
@@ -16,10 +15,6 @@
 @Mapper
 public interface SysUserNoticeDAO extends BaseMapper<SysUserNoticeDO> {
 
-    @Select("SELECT \n" + "COUNT(case WHEN type=1 then id else null end )activityUnread,\n"
-        + "COUNT(case WHEN type=2 then id else null end )serviceUnread,\n"
-        + "COUNT(case WHEN type=3 then id else null end )systemUnread,\n"
-        + "COUNT(case WHEN type=4 then id else null end )scoreUnread\n" + "FROM\n" + "sys_user_notice \n" + "WHERE\n"
-        + "user_id =#{userId} and `status`=0")
+
     NoticeUnReadVO noticeUnreadNum(Long userId);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java
index 96b073a..acba7d8 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java
@@ -4,7 +4,8 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.ibatis.annotations.*;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -41,271 +42,128 @@
  **/
 @Mapper
 public interface UserDao extends BaseMapper<SysUserDO> {
-    // @Select("<script> " +
-    // " <where>" +
-    // "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
-    // " </if> " +
-    // "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
-    // " </if> " +
-    // "<if test='nameCn != null and nameCn.trim() != &quot;&quot;'>" +
-    // " </if> " +
-    // " </where>" +
-    // "</script>")
 
-    @Select("<script> " + "SELECT\n" + "u.user_id,\n" + "u.face_url,\n" + "u.nick_name,\n" + "u.`name`,\n"
-        + "u.phone,\n" + "u.id_card,\n" + "u.face_state,\n" + "c.area_name communityName,\n" + "u.create_at \n"
-        + "FROM\n" + "sys_user u\n" + "JOIN com_mng_struct_area c ON u.area_id = c.id \n"
-        + "<if test='loginUserInfoVO.communityName != null and loginUserInfoVO.communityName.trim() != &quot;&quot;'>"
-        + "AND c.`area_name` like concat(#{loginUserInfoVO.communityName},'%')  \n" + " </if> "
-        + " where u.face_state is not null and u.type=1 and u.community_id=#{loginUserInfoVO.communityId} "
-        + "<if test='loginUserInfoVO.name != null and loginUserInfoVO.name.trim() != &quot;&quot;'>"
-        + "and u.`name` like concat(#{loginUserInfoVO.name},'%')  \n" + " </if> "
-        + "<if test='loginUserInfoVO.phone != null and loginUserInfoVO.phone.trim() != &quot;&quot;'>"
-        + "AND u.phone like concat(#{loginUserInfoVO.phone},'%') " + " </if> "
-        + " order by u.face_state asc,u.create_at asc " + "</script>")
+
     IPage<LoginUserInfoVO> pageUserFace(Page page, @Param("loginUserInfoVO") LoginUserInfoVO loginUserInfoVO);
 
-    // @Select("<script> " +
-    // "SELECT\n" +
-    // "u.user_id,\n" +
-    // "u.`name`,\n" +
-    // "u.`sex`,\n" +
-    // "u.nick_name,\n" +
-    // "u.phone,\n" +
-    // "YEAR (now()) - YEAR (substring(u.id_card, 7, 8)) age,\n"+
-    // "1 isRegister,\n"+
-    // "v.political_face political_outlook,\n"+
-    // "u.id_card,\n" +
-    // "u.job,\n" +
-    // "c.area_name communityName,\n" +
-    // "u.tags,\n" +
-    // "u.create_at \n" +
-    // "FROM\n" +
-    // "sys_user u\n" +
-    // "left join com_mng_volunteer_mng v on u.phone=v.phone \n"+
-    // "<if test='loginUserInfoVO.communityName != null and loginUserInfoVO.communityName.trim() != &quot;&quot;'>" +
-    // " JOIN com_mng_struct_area c ON u.area_id = c.id \n" +
-    // " </if> " +
-    // "<if test='loginUserInfoVO.communityName == null or loginUserInfoVO.communityName.trim() == &quot;&quot;'>" +
-    // "LEFT JOIN com_mng_struct_area c ON u.area_id = c.id \n" +
-    // " </if> " +
-    // "<if test='loginUserInfoVO.communityName != null and loginUserInfoVO.communityName.trim() != &quot;&quot;'>" +
-    // "AND c.`area_name` like concat(#{loginUserInfoVO.communityName},'%') \n" +
-    // " </if> " +
-    // " where u.community_id=#{loginUserInfoVO.communityId} and u.type=1 " +
-    // "<if test='loginUserInfoVO.name != null and loginUserInfoVO.name.trim() != &quot;&quot;'>" +
-    // " and u.`name` like concat(#{loginUserInfoVO.name},'%') \n" +
-    // " </if> " +
-    // "<if test='loginUserInfoVO.phone != null and loginUserInfoVO.phone.trim() != &quot;&quot;'>" +
-    // "AND u.phone like concat(#{loginUserInfoVO.phone},'%') " +
-    // " </if> " +
-    // " order by u.user_id desc " +
-    // "</script>")
+
     IPage<AppletUserInfoVO> pageUser(Page page, @Param("loginUserInfoVO") AppletUserInfoVO userInfoVO);
 
-    @Select("<script> " + "SELECT\n" + "u.user_id,\n" + "u.account,\n" + "u.`name`,\n" + "u.`password`,\n"
-        + "u.phone,\n" + "e.role_name,\n" + "e.role_id ,\n" + "u.`status`,\n" + "u.create_at,\n"
-        + "u.last_login_time \n" + "FROM\n" + "sys_user u\n" + "JOIN sys_user_role r ON u.user_id = r.user_id\n"
-        + "JOIN sys_role e ON r.role_id = e.role_id \n"
-        + "<if test='administratorsUserVO.roleId != null and administratorsUserVO.roleId!=0'>"
-        + " and e.role_id=#{administratorsUserVO.roleId}" + " </if> " + " <where>"
-        + "<if test='administratorsUserVO.communityId != null '>"
-        + "AND u.community_id = #{administratorsUserVO.communityId} \n" + " </if> "
-        + "<if test='administratorsUserVO.name != null and administratorsUserVO.name.trim() != &quot;&quot;'>"
-        + "AND u.name like concat (#{administratorsUserVO.name},'%')  \n" + " </if> "
-        + "<if test='administratorsUserVO.phone != null and administratorsUserVO.phone.trim() != &quot;&quot;'>"
-        + "AND u.phone like concat(#{administratorsUserVO.phone},'%') " + " </if> "
-        + "<if test='administratorsUserVO.account != null and administratorsUserVO.account.trim() != &quot;&quot;'>"
-        + "AND u.account like concat(#{administratorsUserVO.account},'%') " + " </if> " + " </where>" + "</script>")
+
     IPage<AdministratorsUserVO> pageUserBackstage(Page page,
         @Param("administratorsUserVO") AdministratorsUserVO administratorsUserVO);
 
-    @Select("<script> " + "select \n" + "u.user_id,\n" + "u.phone,\n" + "u.nick_name,\n" + "u.name,\n"
-        + "a.name communityName,\n" + "u.status,\n" + "u.create_at,\n" + "u.last_login_time\n" + "from sys_user u\n"
-        + "left join com_act a on u.community_id=a.community_id\n" + " where\n"
-        + "u.type=1 and u.community_id is not null \n"
-        + "<if test='pageUserAppletsBackstageDTO.phone != null and pageUserAppletsBackstageDTO.phone.trim() != &quot;&quot;'>"
-        + "and u.phone=#{pageUserAppletsBackstageDTO.phone}\n" + " </if> "
-        + "<if test='pageUserAppletsBackstageDTO.communityId != null and pageUserAppletsBackstageDTO.communityId != 0'>"
-        + "and u.community_id=#{pageUserAppletsBackstageDTO.communityId}\n" + " </if> "
-        + "<if test='pageUserAppletsBackstageDTO.status != null and pageUserAppletsBackstageDTO.status != 0'>"
-        + "and u.status=#{pageUserAppletsBackstageDTO.status}\n" + " </if> "
-        + "<if test='pageUserAppletsBackstageDTO.createAtBegin != null '>"
-        + "and u.create_at between #{pageUserAppletsBackstageDTO.createAtBegin} and #{pageUserAppletsBackstageDTO.createAtEnd}\n"
-        + " </if> " + "<if test='pageUserAppletsBackstageDTO.lastLoginTimeBegin != null '>"
-        + "and u.last_login_time between #{pageUserAppletsBackstageDTO.lastLoginTimeBegin} and #{pageUserAppletsBackstageDTO.lastLoginTimeEnd}\n"
-        + " </if> " + "order by u.create_at desc \n" + "</script>")
+
     IPage<SysUserVO> pageUserAppletsBackstage(Page page,
         @Param("pageUserAppletsBackstageDTO") PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO);
 
-    @Update("update sys_user set nick_name=null ,community_id=null,area_id=null where user_id=#{userId}")
+
     int deleteUserTest(Long userId);
 
-    @Select("<script> " + "select * from \n" + "sys_user_notice \n" + "where \n" + "user_id=#{pageDTO.userId} \n"
-        + "<if test='pageDTO.type != null and pageDTO.type != 0'>" + "and type=#{pageDTO.type}\n" + " </if> "
-        + "order by create_at desc\n" + "</script>")
+
     IPage<SysUserNoticeVO> pageNotice(Page page, @Param("pageDTO") PageDTO pageDTO);
 
-    @Select("SELECT \n" + "COUNT(user_id)allUser,\n"
-        + "COUNT(case WHEN DATE_FORMAT(create_at,'%m-%d-%Y')=DATE_FORMAT(SYSDATE(),'%m-%d-%Y') then user_id else null end )addUser,\n"
-        + "COUNT(case WHEN DATE_FORMAT(last_login_time,'%m-%d-%Y')=DATE_FORMAT(SYSDATE(),'%m-%d-%Y') then user_id else null end )activeDayUser,\n"
-        + "(SELECT count(user_id) FROM sys_user WHERE type = 1 AND last_login_time > date_sub(SYSDATE(), INTERVAL 7 DAY))activeWeekUser\n"
-        + "FROM\n" + "sys_user\n" + "where type=1 and community_id is not null")
+
     IndexDataKanbanVO selectIndexDataKanban();
 
-    @Select("select t.* from (\n" + "SELECT \n" + "a.`name`,\n" + "COUNT(u.user_id)num\n" + "FROM\n" + "com_act a\n"
-        + "LEFT JOIN sys_user u ON a.community_id = u.community_id and u.type=1\n"
-        + "GROUP BY a.community_id)t ORDER BY t.num desc  ")
+
     List<DataKanbanDTO> selectCommunityUserOrder();
 
-    @Select("SELECT\n" + "\tCOUNT( a.id ) num \n" + "FROM\n" + "\tcom_act_activity a \n" + "WHERE\n"
-        + "\tDATE_FORMAT( #{date1}, '%Y-%m-%d' )= DATE_FORMAT(\n" + "\t\ta.create_at,\n" + "\t'%Y-%m-%d')\n" + "\t")
+
     DataKanbanDTO selectCommunityActiveUserOrder(Date date1);
 
-    @Select("SELECT \n" + "COUNT(DISTINCT u.user_id)allUser,\n"
-        + "(select COUNT(m.id) from com_mng_volunteer_mng m where m.community_id=#{communityId} and m.`state`=2)volunteerUser,\n"
-        + " (select count(id) from com_pb_member cpm where cpm.audit_result = 1 and cpm.community_id = #{communityId}) partymemberUser,\n"
-        + "COUNT(h.id)house\n" + "FROM\n" + "sys_user u\n" + "JOIN com_act c ON u.community_id = c.community_id \n"
-        + "LEFT JOIN com_mng_struct_house_user h on u.user_id=h.user_id\n" + "WHERE\n"
-        + "u.community_id =#{communityId} and u.type=1")
+
     IndexDataVO indexDataCommunityBackstage(Long communityId);
 
-    @Update("UPDATE sys_user u \n" + "SET u.continuous_landing_days =\n" + "IF\n" + "(\n"
-        + "DATE_FORMAT( u.last_login_time, '%m-%d-%Y' )= DATE_FORMAT( SYSDATE(), '%m-%d-%Y' ),\n"
-        + "u.continuous_landing_days + 1,\n" + "0)")
+
     int timedTaskContinuousLandingDays();
 
-    @Select("select id,create_at,state,name,phone,photo_path,political_face,reject_reson,apply_reson,address,age,job,integral,community_id,submit_user_id "
-        + " from com_mng_volunteer_mng where phone=#{phone} order by create_at desc limit 1")
+
     ComMngVolunteerMngVO selectVolunteerMngByPhone(String phone);
 
-    @Update("update sys_user set face_state=null where user_id=#{userId}")
+
     int updateFaceState(Long userId);
 
-    @Select("select name from com_act where community_id=#{communityId}")
+
     ComActVO selectCommunity(Long communityId);
 
-    @Select("select COUNT(a.id) from com_mng_struct_area a where a.area_name=#{areaName}")
+
     Integer selectCountArea(String areaName);
 
-    @Select("SELECT\n" + "\tCOUNT(h.id)\n" + "FROM\n" + "\tcom_mng_struct_area a \n"
-        + "\tLEFT JOIN com_mng_struct_house h on  h.parent_code=a.area_code\n" + "WHERE\n"
-        + "\ta.area_name = #{areaName}")
+
     Integer selectCountHouse(String areaName);
 
-    @Select("<script> " + "SELECT\n" + "u.user_id 'order',\n" + "h.house_name doorNumber,\n"
-        + "if(h.state=2,'租住','自主')isRent,\n" + "u.`name`,\n" + "'汉' nation,\n"
-        + "if(u.is_partymember=1,'党员','群众')politicalOutlook,\n" + "'未知' maritalStatus,\n" + "u.phone,\n"
-        + "'未知' education,\n" + "u.id_card,\n" + "'未知' company,\n" + "'未知' residence,\n" + "'未知' isPanZhiHua,\n"
-        + "'未知' situation,\n" + "'未知' isContact,\n" + "'未知' major,\n" + "'未知' soldier,\n" + "'未知' disability,\n"
-        + "'未知' lowIncomeHouseholds,\n" + "'未知' lowIncomePeople,\n" + "'未知' oldPeople,\n"
-        + "'未知' specialServiceFamily,\n" + "'未知' keyPersonnel\n" + "FROM\n" + "sys_user u\n"
-        + "left join com_mng_struct_house_user hu on hu.user_id=u.user_id\n"
-        + "left join com_mng_struct_house h on hu.house_code=h.house_code\n"
-        + "<if test='exportUserDTO.areaName != null and exportUserDTO.areaName.trim() != &quot;&quot;'>"
-        + " JOIN com_mng_struct_area c ON u.area_id = c.id \n" + " </if> "
-        + "<if test='exportUserDTO.areaName == null or exportUserDTO.areaName.trim() == &quot;&quot;'>"
-        + "LEFT JOIN com_mng_struct_area c ON u.area_id = c.id \n" + " </if> "
-        + "<if test='exportUserDTO.areaName != null and exportUserDTO.areaName.trim() != &quot;&quot;'>"
-        + "AND c.`area_name` like concat(#{exportUserDTO.areaName},'%')  \n" + " </if> "
-        + " where u.community_id=#{exportUserDTO.communityId} and u.type=1 "
-        + "<if test='exportUserDTO.name != null and exportUserDTO.name.trim() != &quot;&quot;'>"
-        + " and u.`name` like concat(#{exportUserDTO.name},'%')  \n" + " </if> "
-        + "<if test='exportUserDTO.phone != null and exportUserDTO.phone.trim() != &quot;&quot;'>"
-        + "AND u.phone like concat(#{exportUserDTO.phone},'%') " + " </if> " + " group by u.user_id  " + "</script>")
+
     List<EexcelUserDTO> selectExport(@Param("exportUserDTO") ExportUserDTO exportUserDTO);
 
-    @Select("SELECT\n" + "\t COUNT(a.id)\n" + "FROM\n" + "\t com_pb_member_role a \n" + "WHERE\n"
-        + "\t a.phone = #{phone} and community_id=#{userCommunityId} ")
+
     Integer selectCountMemberRole(@Param("phone") String phone, @Param("userCommunityId") Long userCommunityId);
 
-    @Select("SELECT\n" + "\t COUNT(a.id)\n" + "FROM\n" + "\t com_pb_service_team a \n" + "WHERE\n"
-        + "\t a.phone = #{phone} and community_id=#{userCommunityId} ")
+
     Integer selectCountTeam(@Param("phone") String phone, @Param("userCommunityId") Long userCommunityId);
 
-    @Update("update com_pb_member_role u set u.phone=#{newphone},is_reg=1 where u.phone=#{oldphone}")
+
     void updateMemberRole(@Param("newphone") String newphone, @Param("oldphone") String oldphone);
 
-    @Update("update com_pb_service_team u set u.phone=#{newphone},is_reg=1 where u.phone=#{oldphone}")
+
     void updateServiceTeam(@Param("newphone") String newphone, @Param("oldphone") String oldphone);
 
-    @Select("SELECT\n" + "\t COUNT(ur.role_id) \n" + "FROM\n"
-        + "\t sys_user u LEFT JOIN sys_user_role ur ON u.user_id = ur.user_id \n"
-        + "\t LEFT JOIN sys_role r ON ur.role_id = r.role_id  \n"
-        + "WHERE ur.role_id IS  NOT NULL AND  u.phone = #{phone}  and r.community_id=#{userCommunityId}  ")
+
     Integer selectCountSysUser(@Param("phone") String phone, @Param("userCommunityId") Long userCommunityId);
 
-    @Select("update com_shop_store set sys_user_id = #{sysUserId} where phone = #{phone}")
+
     void updateStoreByPhone(@Param("phone") String phone, @Param("sysUserId") Long sysUserId);
 
-    @Select("delete from com_shop_store where delete_status = 1 and phone = #{phone}")
+
     void deleteStoreByPhoneAndStatus(@RequestParam("phone") String phone);
 
-    @Select("update sys_user set" + " card_photo_front = #{userArchivesVO.cardPhotoFront} \n"
-        + ", card_photo_back = #{userArchivesVO.cardPhotoBack} \n" + ",family_book = #{userArchivesVO.familyBook} \n"
-        + ",job = #{userArchivesVO.job} \n" + " where user_id = #{userArchivesVO.userId}")
+
     void updateUserArchives(@Param("userArchivesVO") UpdateUserArchivesVO userArchivesVO);
 
-    @Select("update com_pb_member set user_id = #{userId} where audit_result = 1 and id_card = #{idCard}")
+
     void updateComPbMemberUserId(@Param("idCard") String idCard, @Param("userId") Long userId);
 
-    @Select("select id from com_pb_member where audit_result = 1 and id_card = #{idCard}")
+
     Long getPartyBuildingByIdCard(@Param("idCard") String idCard);
 
-    @Select("<script>" + "select su.user_id,su.image_url,su.nick_name,su.account,su.phone,su.work_status,su.`status`"
-        + ",ca.name as communityName,su.work_start_time,su.work_end_time from sys_user su"
-        + " left join com_act as ca on ca.community_id = su.community_id" + " where su.type = 6 "
-        + "<if test='memberRelationDTO.status != null'>" + "AND su.status = #{memberRelationDTO.status} " + " </if> "
-        + "<if test='memberRelationDTO.gridCommunityId != null'>"
-        + "AND ca.community_id = #{memberRelationDTO.gridCommunityId} " + " </if> "
-        + "<if test='memberRelationDTO.gridStreetId != null'>" + "AND ca.street_id = #{memberRelationDTO.gridStreetId} "
-        + " </if> " + "<if test='memberRelationDTO.workStatus != null'>"
-        + "AND su.work_status = #{memberRelationDTO.workStatus} " + " </if> "
-        + "<if test='memberRelationDTO.keyWord != null and memberRelationDTO.keyWord != &quot;&quot;'>"
-        + "and (su.nick_name like concat(#{memberRelationDTO.keyWord},'%') OR su.user_id = #{memberRelationDTO.keyWord} OR su.account like concat(#{memberRelationDTO.keyWord},'%') OR su.phone like concat(#{memberRelationDTO.keyWord},'%'))"
-        + " </if> " + " order by su.create_at desc" + "</script>")
+
     IPage<GridMemberVO> getGridMemberList(Page page,
         @Param("memberRelationDTO") PageEventGridMemberRelationDTO memberRelationDTO);
 
-    @Select("<script>" + "update sys_user" + " set status = #{gridMemberEditDTO.status}" + " where user_id in "
-        + "<foreach item=\"item\" collection=\"gridMemberEditDTO.ids\" separator=\",\" open=\"(\" close=\")\" index=\"\"> \n"
-        + "#{item}\n" + "</foreach>\n" + "</script>")
+
     void gridMemberEditStatus(@Param("gridMemberEditDTO") EventGridMemberEditStatusDTO gridMemberEditDTO);
 
-    @Select("<script>" + "update sys_user" + " set password = #{gridMemberDTO.password}" + " where user_id in "
-        + "<foreach item=\"item\" collection=\"gridMemberDTO.ids\" separator=\",\" open=\"(\" close=\")\" index=\"\"> \n"
-        + "#{item}\n" + "</foreach>\n" + "</script>")
+
     void passResetUser(@Param("gridMemberDTO") EventGridMemberPassResetDTO gridMemberDTO);
 
-    @Update("update lc_compare_code_member set local_grid_member_id = #{userId},grid_member_name = #{userName} where id = #{lcMemberId}")
+
     void addLcMember(@Param("lcMemberId") Long lcMemberId, @Param("userId") Long userId,
         @Param("userName") String userName);
 
-    @Delete("delete from lc_compare_code_member where local_grid_member_id = #{gridMemberId}")
+
     void delLcMember(@Param("gridMemberId") Long gridMemberId);
 
-    @Select("select id,village_id,act_id from com_mng_building where id = #{buildingId}")
+
     Map<String, Long> getBuilding(@Param("buildingId") Long buildingId);
 
-    @Delete("delete from event_grid_member_building_relation where grid_member_id = #{gridMemberId}")
+
     void delGridMemberRelation(@Param("gridMemberId") Long gridMemberId);
 
-    @Select("select lc_grid_member_id,lc_grid_member_name,lc_bind_user_id from lc_compare_code_member where local_grid_member_id = #{gridMemberId}")
+
     Map<String, String> getLcMemberId(@Param("gridMemberId") Long gridMemberId);
 
-    @Select("select count(id) from event_grid_member_relation where grid_member_id = #{userId}")
+
     Integer getGridIsOk(@Param("userId") Long userId);
 
-    @Select("select user_id,nick_name,phone from sys_user where type = 6 and community_id = #{communityId} limit 3")
     List<EventGridMemberVO> getGridsMemberList(@Param("communityId") Long communityId);
 
-    @Select("<script>" + "select id as managerId,`name` from com_pb_service_team where community_id = #{communityId}"
-        + "<if test='param != null and param != &quot;&quot;'>" + "AND `name` like concat(#{param},'%') " + " </if> "
-        + "</script>")
+
     List<ComPbServiceTeamWishVO> getServiceTeamList(@Param("param") String param,
         @Param("communityId") Long communityId);
 
-    @Select("select user_id,`name` from sys_user as su where type = 3 and community_id = #{communityId}")
+
     List<SysUserVO> getUserListByCommunityId(@Param("communityId") Long communityId);
 
+    int putUserTag(@Param("sysUserDO") SysUserDO sysUserDO);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java
index 79c7b50..2940a11 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java
@@ -523,7 +523,7 @@
      * 
      * @return 标签集合
      */
-    R listTags(Long communityId);
+    R listTags();
 
     /**
      * 通过账号查询用户信息
@@ -688,6 +688,13 @@
     R getUserListByCommunityId(Long communityId);
 
     /**
+     * 检查当前用户是否是社区工作人员
+     * @param phone
+     * @param communityId
+     * @return
+     */
+    R checkCurrentUserIsTeam(String phone, Long communityId);
+    /**
      * 重置密码
      */
     R resetPassword(Long userId);
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysUserInputServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysUserInputServiceImpl.java
index a9e6dc8..9cbe22a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysUserInputServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysUserInputServiceImpl.java
@@ -361,12 +361,12 @@
             comMngUserTagDAO.updateById(comMngUserTagDO);
         } else {
             ComMngUserTagDO comMngUserTagDO = comMngUserTagDAO.getSpecialInputUserTagsByVO(comMngTagVO);
-            if (comMngUserTagDO != null && comMngUserTagDO.getCommunityId().equals(comMngTagVO.getCommunityId())) {
+            if (comMngUserTagDO != null) {
                 return R.fail("标签重复");
             }
             ComMngUserTagDO comMngUserTagDO1 = new ComMngUserTagDO();
             comMngUserTagDO1.setTagName(comMngTagVO.getTagName());
-            comMngUserTagDO1.setCommunityId(comMngTagVO.getCommunityId());
+//            comMngUserTagDO1.setCommunityId(comMngTagVO.getCommunityId());
             comMngUserTagDO1.setSysFlag(0);
             comMngUserTagDO1.setCreateAt(new Date());
             comMngUserTagDAO.insert(comMngUserTagDO1);
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
index 08ddb76..5c6666e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -14,7 +14,6 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
-import org.springframework.util.StringUtils;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -461,8 +460,39 @@
         IPage<AppletUserInfoVO> iPage =
             userDao.pageUser(new Page<>(userInfoVO.getPageNum(), userInfoVO.getPageSize()), userInfoVO);
         iPage.getRecords().forEach(record -> {
-            record.setPhone(SensitiveUtil.desensitizedPhoneNumber(record.getPhone()));
+//            record.setPhone(SensitiveUtil.desensitizedPhoneNumber(record.getPhone()));
             record.setIdCard(SensitiveUtil.desensitizedIdNumber(record.getIdCard()));
+
+            if (StringUtils.isNotEmpty(record.getTags())) {
+                StringBuffer sb = new StringBuffer();
+                sb.append(record.getTags() + ",");
+                if (record.getIsPartymember().equals(1)) {
+                    if (!sb.toString().contains("党员")){
+                        sb.append("党员,");
+                    }
+                }
+                if (record.getIsVolunteer().equals(1)) {
+                    if (!sb.toString().contains("志愿者")) {
+                        sb.append("志愿者,");
+                    }
+                }
+                String tags = sb.toString();
+                record.setTags(tags.substring(0, tags.length() - 1));
+            }else {
+                StringBuffer sb = new StringBuffer();
+                if (record.getIsPartymember().equals(1)) {
+                    sb.append("党员,");
+                }
+                if (record.getIsVolunteer().equals(1)) {
+                    sb.append("志愿者,");
+                }
+                String tags = sb.toString();
+                if (tags.length() > 0) {
+                    record.setTags(tags.substring(0, tags.length() - 1));
+                } else {
+                    record.setTags("无");
+                }
+            }
         });
         return R.ok(iPage);
     }
@@ -567,8 +597,10 @@
     public R putUserTag(LoginUserInfoVO loginUserInfoVO) {
         SysUserDO sysUserDO = new SysUserDO();
         sysUserDO.setUserId(loginUserInfoVO.getUserId());
-        sysUserDO.setTags(loginUserInfoVO.getTags());
-        int update = userDao.updateById(sysUserDO);
+        if (StringUtils.isNotEmpty(loginUserInfoVO.getTags()) && !"无".equals(loginUserInfoVO.getTags())) {
+            sysUserDO.setTags(loginUserInfoVO.getTags());
+        }
+        int update = userDao.putUserTag(sysUserDO);
         if (update > 0) {
             return R.ok();
         }
@@ -1863,13 +1895,18 @@
      * @return 标签集合
      */
     @Override
-    public R listTags(Long communityId) {
+    public R listTags() {
         List<String> list = new ArrayList<>();
         List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
-            .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
+            .selectList(null);
         if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
-            list = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
-                .collect(Collectors.toList());
+            for (ComMngUserTagDO comMngUserTagDO : comMngUserTagDOS) {
+                if (!list.contains(comMngUserTagDO.getTagName())) {
+                    list.add(comMngUserTagDO.getTagName());
+                }
+            }
+//            list = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
+//                .collect(Collectors.toList());
         }
         return R.ok(list);
     }
@@ -2429,6 +2466,21 @@
         return R.ok(this.userDao.getUserListByCommunityId(communityId));
     }
 
+    /**
+     * 检查当前用户是否是社区工作人员
+     * @param phone
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R checkCurrentUserIsTeam(String phone, Long communityId) {
+        int result = this.userDao.selectCountTeam(phone, communityId);
+        if (result > 0) {
+            return R.ok(true);
+        }
+        return R.ok(false);
+    }
+
     @Override
     public R resetPassword(Long userId) {
         SysUserDO sysUserDO = new SysUserDO();
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComMngFamilyInfoDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComMngFamilyInfoDAO.xml
new file mode 100644
index 0000000..00ebaf8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComMngFamilyInfoDAO.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.panzhihua.service_user.dao.ComMngFamilyInfoDAO">
+    <resultMap id="baseResult" type="com.panzhihua.service_user.model.dos.ComMngFamilyInfoDO">
+        <id property="id" column="id"/>
+        <result property="userId" column="user_id"/>
+        <result property="relationship" column="relationship"/>
+        <result property="name" column="name"/>
+        <result property="idCard" column="id_card"/>
+        <result property="phone" column="phone"/>
+        <result property="age" column="age"/>
+        <result property="health" column="health"/>
+        <result property="job" column="job"/>
+        <result property="cardPhotoFront" column="card_photo_front"/>
+        <result property="cardPhotoBack" column="card_photo_back"/>
+        <result property="familyBook" column="family_book"/>
+        <result property="createAt" column="create_at"/>
+        <result property="updateAt" column="update_at"/>
+
+    </resultMap>
+    <sql id="columns">
+		`id`,`user_id`,`relationship`,`name`,`id_card`,`phone`,`age`,`health`,`job`,`card_photo_front`,`card_photo_back`,`family_book`,`create_at`,`update_at`
+	</sql>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComMngStructHouseDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComMngStructHouseDAO.xml
new file mode 100644
index 0000000..8288b0f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComMngStructHouseDAO.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.panzhihua.service_user.dao.ComMngStructHouseDAO">
+    <resultMap id="baseResult" type="com.panzhihua.service_user.model.dos.ComMngStructHouseDO">
+        <id property="id" column="id"/>
+        <result property="houseCode" column="house_code"/>
+        <result property="createAt" column="create_at"/>
+    </resultMap>
+    <sql id="columns">
+		`id`,`user_id`,`house_code`,`create_at`,`area_code`,`identity`
+	</sql>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComMngUserTagDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComMngUserTagDAO.xml
new file mode 100644
index 0000000..547da11
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComMngUserTagDAO.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.panzhihua.service_user.dao.ComMngUserTagDAO">
+    <resultMap id="baseResult" type="com.panzhihua.service_user.model.dos.ComMngUserTagDO">
+        <id property="id" column="id"/>
+        <result property="tagName" column="tag_name"/>
+        <result property="communityId" column="community_id"/>
+        <result property="createAt" column="create_at"/>
+        <result property="sysFlag" column="sys_flag"/>
+
+    </resultMap>
+    <sql id="columns">
+		`id`,`tag_name`,`community_id`,`create_at`,`sys_flag`
+	</sql>
+
+
+    <select id="getSpecialInputUserTagsByVO" resultType="com.panzhihua.service_user.model.dos.ComMngUserTagDO">
+        SELECT t.* FROM com_mng_user_tag t WHERE community_id = #{comMngTagVO.communityId}
+        <if test='comMngTagVO.tagName != null and comMngTagVO.tagName.trim() != &quot;&quot;'>
+            and t.tag_name =#{comMngTagVO.tagName}
+        </if>
+    </select>
+
+    <select id="pageSpecialInputUserTags" resultType="com.panzhihua.common.model.vos.user.ComMngTagVO">
+        SELECT t.* FROM com_mng_user_tag t WHERE community_id IN ( 0, #{comMngUserTagDTO.communityId} )
+        <if test='comMngUserTagDTO.tagName != null and comMngUserTagDTO.tagName.trim() != &quot;&quot;'>
+            and t.tag_name like concat('%',#{comMngUserTagDTO.tagName},'%')
+        </if>
+        ORDER BY t.sys_flag DESC
+    </select>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/EventGridMemberBuildingRelationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/EventGridMemberBuildingRelationMapper.xml
new file mode 100644
index 0000000..62b2cd5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/EventGridMemberBuildingRelationMapper.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.panzhihua.service_user.dao.EventGridMemberBuildingRelationMapper">
+    <resultMap id="baseResult" type="com.panzhihua.service_user.model.dos.EventGridMemberBuildingRelationDO">
+        <id property="id" column="id"/>
+        <result property="gridMemberId" column="grid_member_id"/>
+        <result property="communityId" column="community_id"/>
+        <result property="villageId" column="village_id"/>
+        <result property="buildingId" column="building_id"/>
+        <result property="createAt" column="create_at"/>
+
+    </resultMap>
+    <sql id="columns">
+		`id`,`grid_member_id`,`community_id`,`village_id`,`building_id`,`create_at`
+	</sql>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/LcCompareMemberCodeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/LcCompareMemberCodeMapper.xml
new file mode 100644
index 0000000..ef542cd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/LcCompareMemberCodeMapper.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.panzhihua.service_user.dao.LcCompareMemberCodeMapper">
+    <resultMap id="baseResult" type="com.panzhihua.service_user.model.dos.LcCompareCodeMemberDO">
+        <id property="id" column="id"/>
+        <result property="localGridMemberId" column="local_grid_member_id"/>
+        <result property="gridMemberName" column="grid_member_name"/>
+        <result property="lcGridMemberId" column="lc_grid_member_id"/>
+        <result property="lcGridMemberName" column="lc_grid_member_name"/>
+        <result property="lcBindUserId" column="lc_bind_user_id"/>
+        <result property="createAt" column="create_at"/>
+        <result property="updateAt" column="update_at"/>
+
+    </resultMap>
+    <sql id="columns">
+		`id`,`local_grid_member_id`,`grid_member_name`,`lc_grid_member_id`,`lc_grid_member_name`,`lc_bind_user_id`,`create_at`,`update_at`
+	</sql>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/RoleDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/RoleDAO.xml
new file mode 100644
index 0000000..3d8ccce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/RoleDAO.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.panzhihua.service_user.dao.RoleDAO">
+    <resultMap id="baseResult" type="com.panzhihua.service_user.model.dos.SysRoleDO">
+        <id property="roleId" column="role_id"/>
+        <result property="roleName" column="role_name"/>
+        <result property="roleKey" column="role_key"/>
+        <result property="roleSort" column="role_sort"/>
+        <result property="dataScope" column="data_scope"/>
+        <result property="menuCheckStrictly" column="menu_check_strictly"/>
+        <result property="deptCheckStrictly" column="dept_check_strictly"/>
+        <result property="status" column="status"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createAt" column="create_at"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateAt" column="update_at"/>
+        <result property="remark" column="remark"/>
+        <result property="communityId" column="community_id"/>
+
+    </resultMap>
+    <sql id="columns">
+		`role_id`,`role_name`,`role_key`,`role_sort`,`data_scope`,`menu_check_strictly`,`dept_check_strictly`,`status`,`create_by`,`create_at`,`update_by`,`update_at`,`remark`,`community_id`
+	</sql>
+
+
+    <select id="selectAllMenuUrl" resultType="com.panzhihua.common.model.vos.MenuVO">
+        select r.role_key role,m.component url from sys_role r join sys_role_menu rm on r.role_id=rm.role_id join sys_menu m on rm.menu_id=m.menu_id WHERE m.component is not null
+    </select>
+
+    <select id="selectRoles" resultType="java.lang.String">
+       select r.role_key from sys_user_role ur join sys_role r on ur.role_id = r.role_id where ur.user_id=#{username}
+    </select>
+
+    <select id="selectByUserId" resultType="com.panzhihua.service_user.model.dos.SysRoleDO">
+        select r.* from sys_user_role u join sys_role r on u.role_id=r.role_id where u.user_id=#{userId}
+    </select>
+
+    <select id="selectMaxRole" resultType="java.lang.Long">
+
+    </select>
+
+    <delete id="deleteByRoleKey">
+         delete from sys_role where role_key =#{roleKey}
+    </delete>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysMenuDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysMenuDAO.xml
new file mode 100644
index 0000000..3f100f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysMenuDAO.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.panzhihua.service_user.dao.SysMenuDAO">
+    <resultMap id="baseResult" type="com.panzhihua.service_user.model.dos.SysMenuDO">
+        <id property="menuId" column="menu_id"/>
+        <result property="menuName" column="menu_name"/>
+        <result property="parentId" column="parent_id"/>
+        <result property="orderNum" column="order_num"/>
+        <result property="path" column="path"/>
+        <result property="component" column="component"/>
+        <result property="isFrame" column="is_frame"/>
+        <result property="isCache" column="is_cache"/>
+        <result property="menuType" column="menu_type"/>
+        <result property="visible" column="visible"/>
+        <result property="status" column="status"/>
+        <result property="perms" column="perms"/>
+        <result property="icon" column="icon"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createAt" column="create_at"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateAt" column="update_at"/>
+        <result property="remark" column="remark"/>
+        <result property="communityId" column="community_id"/>
+
+    </resultMap>
+    <sql id="columns">
+		`menu_id`,`menu_name`,`parent_id`,`order_num`,`path`,`component`,`is_frame`,`is_cache`,`menu_type`,`visible`,`status`,`perms`,`icon`,`create_by`,`create_at`,`update_by`,`update_at`,`remark`,`community_id`
+	</sql>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysOperLogDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysOperLogDAO.xml
new file mode 100644
index 0000000..0a036c1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysOperLogDAO.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.panzhihua.service_user.dao.SysOperLogDAO">
+    <resultMap id="baseResult" type="com.panzhihua.service_user.model.dos.SysOperLogDO">
+        <id property="operId" column="oper_id"/>
+        <result property="title" column="title"/>
+        <result property="businessType" column="business_type"/>
+        <result property="method" column="method"/>
+        <result property="requestMethod" column="request_method"/>
+        <result property="operatorType" column="operator_type"/>
+        <result property="operName" column="oper_name"/>
+        <result property="deptName" column="dept_name"/>
+        <result property="operUrl" column="oper_url"/>
+        <result property="operIp" column="oper_ip"/>
+        <result property="operLocation" column="oper_location"/>
+        <result property="operParam" column="oper_param"/>
+        <result property="jsonResult" column="json_result"/>
+        <result property="status" column="status"/>
+        <result property="errorMsg" column="error_msg"/>
+        <result property="operTime" column="oper_time"/>
+        <result property="communityId" column="community_id"/>
+        <result property="account" column="account"/>
+
+    </resultMap>
+    <sql id="columns">
+		`oper_id`,`title`,`business_type`,`method`,`request_method`,`operator_type`,`oper_name`,`dept_name`,`oper_url`,`oper_ip`,`oper_location`,`oper_param`,`json_result`,`status`,`error_msg`,`oper_time`,`community_id`,`account`
+	</sql>
+
+
+    <select id="pageOperLog" resultType="com.panzhihua.common.model.vos.user.SysOperLogVO">
+select * from sys_oper_log where community_id=#{sysOperLogVO.communityId} order by oper_time desc 
+    </select>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysRoleMenuDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysRoleMenuDAO.xml
new file mode 100644
index 0000000..da7ee28
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysRoleMenuDAO.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.panzhihua.service_user.dao.SysRoleMenuDAO">
+    <resultMap id="baseResult" type="com.panzhihua.service_user.model.dos.SysRoleMenuDO">
+        <id property="roleId" column="role_id"/>
+        <result property="menuId" column="menu_id"/>
+
+    </resultMap>
+    <sql id="columns">
+		`role_id`,`menu_id`
+	</sql>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserAgreementDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserAgreementDAO.xml
new file mode 100644
index 0000000..e46f51a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserAgreementDAO.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.panzhihua.service_user.dao.SysUserAgreementDAO">
+    <resultMap id="baseResult" type="com.panzhihua.service_user.model.dos.SysUserAgreementDO">
+        <id property="id" column="id"/>
+        <result property="type" column="type"/>
+        <result property="content" column="content"/>
+        <result property="createAt" column="create_at"/>
+        <result property="updateAt" column="update_at"/>
+        <result property="name" column="name"/>
+        <result property="communityId" column="community_id"/>
+
+    </resultMap>
+    <sql id="columns">
+		`id`,`type`,`content`,`create_at`,`update_at`,`name`,`community_id`
+	</sql>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserDOMapper.xml
index 5d63212..cdf6cde 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserDOMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserDOMapper.xml
@@ -55,6 +55,8 @@
             u.`sex`,
             u.nick_name,
             u.phone,
+            u.is_volunteer,
+            u.is_partymember,
             u.birthday,
             YEAR (
                 now()) - YEAR (
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserFeedbackDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserFeedbackDAO.xml
new file mode 100644
index 0000000..ae47d9d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserFeedbackDAO.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.panzhihua.service_user.dao.SysUserFeedbackDAO">
+    <resultMap id="baseResult" type="com.panzhihua.service_user.model.dos.SysUserFeedbackDO">
+        <id property="id" column="id"/>
+        <result property="content" column="content"/>
+        <result property="photoPath" column="photo_path"/>
+        <result property="createAt" column="create_at"/>
+        <result property="updateAt" column="update_at"/>
+        <result property="userId" column="user_id"/>
+        <result property="areaId" column="area_id"/>
+        <result property="communityId" column="community_id"/>
+        <result property="status" column="status"/>
+
+    </resultMap>
+    <sql id="columns">
+		`id`,`content`,`photo_path`,`create_at`,`update_at`,`user_id`,`area_id`,`community_id`,`status`
+	</sql>
+
+
+    <select id="detailFeedback" resultType="com.panzhihua.common.model.vos.user.SysUserFeedbackVO">
+        select
+        u.name,
+        u.nick_name,
+        f.id,
+        f.content,
+        f.photo_path,
+        u.phone,
+        f.create_at,
+        c.name communityName
+        from sys_user_feedback f
+        join sys_user u on f.user_id=u.user_id
+        join com_act c on u.community_id=c.community_id
+        where f.id=#{id}
+
+    </select>
+
+    <select id="pageFeedback" resultType="com.panzhihua.common.model.vos.user.SysUserFeedbackVO">
+        select
+        u.name,
+        u.nick_name,
+        f.id,
+        u.phone,
+        f.create_at,
+        f.content,
+        f.photo_path,
+        c.name communityName
+        from sys_user_feedback f
+        left join sys_user u on f.user_id=u.user_id
+        left join com_act c on u.community_id=c.community_id
+        <where>
+            <if test='pageFeedBackDTO.phone != null and pageFeedBackDTO.phone.trim() != &quot;&quot;'>
+                and u.phone like concat('%',#{pageFeedBackDTO.phone},'%')
+            </if>
+            <if test='pageFeedBackDTO.name != null and pageFeedBackDTO.name.trim() != &quot;&quot;'>
+                and u.name like concat('%',#{pageFeedBackDTO.name},'%')
+            </if>
+            <if test='pageFeedBackDTO.nickName != null and pageFeedBackDTO.nickName.trim() != &quot;&quot;'>
+                and u.nick_name like concat('%',#{pageFeedBackDTO.nickName},'%')
+            </if>
+        </where>
+        order by f.create_at desc
+
+    </select>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserInputDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserInputDAO.xml
new file mode 100644
index 0000000..04486e3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserInputDAO.xml
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.panzhihua.service_user.dao.SysUserInputDAO">
+    <resultMap id="baseResult" type="com.panzhihua.service_user.model.dos.SysUserInputDO">
+        <id property="id" column="id"/>
+        <result property="doorNumber" column="door_number"/>
+        <result property="isRent" column="is_rent"/>
+        <result property="name" column="name"/>
+        <result property="nation" column="nation"/>
+        <result property="politicalOutlook" column="political_outlook"/>
+        <result property="maritalStatus" column="marital_status"/>
+        <result property="phone" column="phone"/>
+        <result property="education" column="education"/>
+        <result property="idCard" column="id_card"/>
+        <result property="company" column="company"/>
+        <result property="residence" column="residence"/>
+        <result property="isPanzhihua" column="is_panzhiHua"/>
+        <result property="situation" column="situation"/>
+        <result property="isContact" column="is_contact"/>
+        <result property="major" column="major"/>
+        <result property="soldier" column="soldier"/>
+        <result property="lowincomeHouseholds" column="lowIncome_households"/>
+        <result property="lowincomePeople" column="lowIncome_people"/>
+        <result property="oldPeople" column="old_people"/>
+        <result property="specialServiceFamily" column="special_service_family"/>
+        <result property="keyPersonnel" column="key_personnel"/>
+        <result property="communityId" column="community_id"/>
+        <result property="areaId" column="area_id"/>
+        <result property="createAt" column="create_at"/>
+        <result property="updateAt" column="update_at"/>
+        <result property="houseCode" column="house_code"/>
+        <result property="disability" column="disability"/>
+        <result property="tags" column="tags"/>
+
+    </resultMap>
+    <sql id="columns">
+		`id`,`door_number`,`is_rent`,`name`,`nation`,`political_outlook`,`marital_status`,`phone`,`education`,`id_card`,`company`,`residence`,`is_panzhiHua`,`situation`,`is_contact`,`major`,`soldier`,`lowIncome_households`,`lowIncome_people`,`old_people`,`special_service_family`,`key_personnel`,`community_id`,`area_id`,`create_at`,`update_at`,`house_code`,`disability`,`tags`
+	</sql>
+
+
+    <select id="selectUserHouseList" resultType="com.panzhihua.common.model.vos.community.ComMngStructHouseVO">
+       SELECT  t1.house_code houseCode,  t1.house_name houseName,  t1.square,  t1.state FROM  sys_user_input t   LEFT JOIN com_mng_struct_house t1 ON t.house_code = t1.house_code  WHERE t.id_card = #{idCard}
+    </select>
+
+    <select id="selectHouserByareaName" resultType="com.panzhihua.common.model.vos.community.ComMngStructHouseVO">
+        SELECT  REPLACE(REPLACE(REPLACE(REPLACE(h.house_name,a.address_detail,''),'栋','-'),'单元','-'),'层','-')houseName, h.house_code FROM  com_mng_struct_area a   join com_mng_struct_house h on h.house_name like CONCAT(a.address_detail,'%') and h.type=5 WHERE  a.area_name = #{areaName}
+    </select>
+
+    <select id="selectComMngStructArea" resultType="com.panzhihua.common.model.vos.community.ComMngStructAreaVO">
+        select a.id,a.community_id,a.area_name,address_detail from com_mng_struct_area a where a.community_id=#{communityId}
+    </select>
+
+    <select id="specialUserExport" resultType="com.panzhihua.common.model.dtos.user.EexcelUserDTO">
+        SELECT u.id 'order', c.`area_name` areaName, u.door_number doorNumber, if(u.is_rent=1,'租住','自主')isRent, u.name,
+        u.nation, case u.political_outlook when 1 then '党员' when 2 then '团员' else '群众' end politicalOutlook,
+        if(u.marital_status=1,'已婚','未婚')maritalStatus, u.phone, u.education, u.id_card, u.company, u.residence,
+        if(u.is_panzhiHua=1,'是','否') isPanZhiHua, u.situation, if(is_contact=1,'是','否') isContact, if(u.major=1,'是','否')
+        major, if(u.soldier=1,'是','否') soldier, if(u.disability=1,'是','否') disability,
+        if(u.lowIncome_households=1,'是','否') lowIncomeHouseholds, if(u.lowIncome_people=1,'是','否') lowIncomePeople,
+        if(u.old_people=1,'是','否') oldPeople, if(u.special_service_family=1,'是','否') specialServiceFamily,
+        if(u.key_personnel=1,'是','否') keyPersonnel, u.tags FROM sys_user_input u JOIN com_mng_struct_area c ON u.area_id
+        = c.id where u.community_id=#{exportSpecialUserDTO.communityId}
+        <if
+                test='exportSpecialUserDTO.areaName != null and exportSpecialUserDTO.areaName.trim() != &quot;&quot;'>
+            AND
+            c.`area_name` like concat(#{exportUserDTO.areaName},'%')
+        </if>
+        <if test='exportSpecialUserDTO.name != null and exportSpecialUserDTO.name.trim() != &quot;&quot;'>and u.`name`
+            like concat(#{exportSpecialUserDTO.name},'%')
+        </if>
+        <if test='exportSpecialUserDTO.name != null and exportSpecialUserDTO.name.trim() != &quot;&quot;'>and u.`name`
+            like concat(#{exportSpecialUserDTO.name},'%')
+        </if>
+        <if test='exportSpecialUserDTO.tags != null and exportSpecialUserDTO.tags.trim() != &quot;&quot;'>CONCAT( IF (
+            t.soldier = 1, '军人,', '' ), IF ( t.lowIncome_households = 1, '低保户,', '' ), IF ( t.lowIncome_people = 1,
+            '低收入,', '' ), IF ( t.old_people = 1, '特服家庭,', '' ), IF ( t.key_personnel = 1, '重点人员,', '' ),
+            IFNULL(t.tags,'') ) like concat(#{exportSpecialUserDTO.tags},'%')
+        </if>
+    </select>
+
+    <select id="selectExport" resultType="com.panzhihua.common.model.dtos.user.EexcelUserDTO">
+        SELECT u.id 'order', c.`area_name` areaName, u.door_number doorNumber, if(u.is_rent=1,'租住','自主')isRent, u.name,
+        u.nation, case u.political_outlook when 1 then '党员' when 2 then '团员' else '群众' end politicalOutlook,
+        if(u.marital_status=1,'已婚','未婚')maritalStatus, u.phone, u.education, u.id_card, u.company, u.residence,
+        if(u.is_panzhiHua=1,'是','否') isPanZhiHua, u.situation, if(is_contact=1,'是','否') isContact, if(u.major=1,'是','否')
+        major, if(u.soldier=1,'是','否') soldier, if(u.disability=1,'是','否') disability,
+        if(u.lowIncome_households=1,'是','否') lowIncomeHouseholds, if(u.lowIncome_people=1,'是','否') lowIncomePeople,
+        if(u.old_people=1,'是','否') oldPeople, if(u.special_service_family=1,'是','否') specialServiceFamily,
+        if(u.key_personnel=1,'是','否') keyPersonnel, u.tags FROM sys_user_input u where
+        u.community_id=#{exportUserDTO.communityId}
+        <if
+                test='exportUserDTO.areaName != null and exportUserDTO.areaName.trim() != &quot;&quot;'>JOIN
+            com_mng_struct_area c ON u.area_id = c.id
+        </if>
+        <if test='exportUserDTO.areaName == null or exportUserDTO.areaName.trim() == &quot;&quot;'>LEFT JOIN
+            com_mng_struct_area c ON u.area_id = c.id
+        </if>
+        <if test='exportUserDTO.areaName != null and exportUserDTO.areaName.trim() != &quot;&quot;'>AND c.`area_name`
+            like concat(#{exportUserDTO.areaName},'%')
+        </if>
+        <if test='exportUserDTO.phone != null and exportUserDTO.phone.trim() != &quot;&quot;'>AND u.phone like
+            concat(#{exportUserDTO.phone},'%')
+        </if>
+        <if test='exportUserDTO.name != null and exportUserDTO.name.trim() != &quot;&quot;'>and u.`name` like
+            concat(#{exportUserDTO.name},'%')
+        </if>
+    </select>
+
+    <select id="pageInputUser" resultType="com.panzhihua.common.model.vos.user.InputUserInfoVO">
+        SELECT t.id, t.`name`, CASE IF ( length( t.id_card ) = 18, cast( substring( t.id_card, 17, 1 ) AS UNSIGNED ) %
+        2, IF ( length( t.id_card ) = 15, cast( substring( t.id_card, 15, 1 ) AS UNSIGNED ) % 2, 3 ) ) WHEN 1 THEN 1
+        WHEN 0 THEN 2 ELSE 0 END AS sex, t.phone, YEAR ( now( ) ) - YEAR ( substring( t.id_card, 7, 8 ) ) age,
+        t1.area_name as areaName, t.political_outlook politicalOutlook, CONCAT( IF ( t.soldier = 1, '军人,', '' ), IF (
+        t.lowIncome_households = 1, '低保户,', '' ), IF ( t.lowIncome_people = 1, '低收入,', '' ), IF ( t.old_people = 1,
+        '特服家庭,', '' ), IF ( t.key_personnel = 1, '重点人员,', '' ) ) tags, t.create_at as createAt FROM sys_user_input t
+        LEFT JOIN com_mng_struct_area t1 ON t.area_id = t1.id WHERE t.community_id = #{pageInputUserDTO.communityId}
+        <if
+                test='pageInputUserDTO.name != null and pageInputUserDTO.name.trim() != &quot;&quot;'>and t.`name` like
+            concat(#{pageInputUserDTO.name},'%')
+        </if>
+        <if test='pageInputUserDTO.phone != null and pageInputUserDTO.phone.trim() != &quot;&quot;'>and t.phone like
+            concat(#{pageInputUserDTO.phone},'%')
+        </if>
+        <if test='pageInputUserDTO.areaName != null and pageInputUserDTO.areaName.trim() != &quot;&quot;'>AND
+            t1.`area_name` like concat(#{pageInputUserDTO.areaName},'%')
+        </if>
+        group by t.id_card
+    </select>
+
+    <select id="specialInputUser" resultType="com.panzhihua.common.model.vos.user.InputUserInfoVO">
+        SELECT * FROM ( SELECT t.id, t.`name`, CASE IF ( length( t.id_card ) = 18, cast( substring( t.id_card, 17, 1 )
+        AS UNSIGNED ) % 2, IF ( length( t.id_card ) = 15, cast( substring( t.id_card, 15, 1 ) AS UNSIGNED ) % 2, 3 ) )
+        WHEN 1 THEN 1 WHEN 0 THEN 2 ELSE 0 END AS sex, t.phone, YEAR ( now( ) ) - YEAR ( substring( t.id_card, 7, 8 ) )
+        age, t1.area_name as areaName, t.political_outlook politicalOutlook, CONCAT( IF ( t.soldier = 1, '军人,', '' ), IF
+        ( t.lowIncome_households = 1, '低保户,', '' ), IF ( t.lowIncome_people = 1, '低收入,', '' ), IF ( t.old_people = 1,
+        '特服家庭,', '' ), IF ( t.key_personnel = 1, '重点人员,', '' ), IFNULL(t.tags,'') ) tags, t2.house_name as address,
+        t.create_at as createAt FROM sys_user_input t LEFT JOIN com_mng_struct_area t1 ON t.area_id = t1.id LEFT JOIN
+        com_mng_struct_house t2 ON t.house_code = t2.house_code WHERE t.community_id = #{pageInputUserDTO.communityId}
+        AND (t.soldier=1 OR t.lowIncome_households=1 OR t.lowIncome_people=1 or t.old_people=1 OR
+        t.special_service_family=1 OR t.key_personnel=1 OR
+        (t.tags IS NOT NULL AND TRIM(t.tags)!=''))
+        <if test='pageInputUserDTO.name != null and pageInputUserDTO.name.trim() != &quot;&quot;'>
+            and t.`name` like concat(#{pageInputUserDTO.name},'%')
+        </if>
+        <if test='pageInputUserDTO.phone != null and pageInputUserDTO.phone.trim() != &quot;&quot;'>
+            and t.phone like concat(#{pageInputUserDTO.phone},'%')
+        </if>
+        <if test='pageInputUserDTO.areaName != null and pageInputUserDTO.areaName.trim() != &quot;&quot;'>
+            AND t1.`area_name` like concat(#{pageInputUserDTO.areaName},'%')
+        </if>
+        group by t.id_card ) tt WHERE 1=1
+        <if test='pageInputUserDTO.tags != null and pageInputUserDTO.tags.trim() != &quot;&quot;'>
+            and tt.tags like concat('%',#{pageInputUserDTO.tags},'%')
+        </if>
+    </select>
+
+    <select id="selectListFamily" resultType="com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO">
+        SELECT  p.name, p.id, if(p.is_rent=1,'合租','家人')relationship, p.id_card, p.phone, year(curdate())-if(length(p.id_card)=18,substring(p.id_card,7,4),if(length(p.id_card)=15,concat('19',substring(p.id_card,7,2)),null)) as age, p.create_at FROM  sys_user_input p  WHERE  p.door_number = #{doorNumber}   AND p.id !=#{userId}
+    </select>
+
+    <select id="selectByAreaName" resultType="com.panzhihua.common.model.vos.community.ComMngStructAreaVO">
+        select a.id,a.community_id from com_mng_struct_area a where a.area_name=#{areaName}
+    </select>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserNoticeDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserNoticeDAO.xml
new file mode 100644
index 0000000..8987086
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserNoticeDAO.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.panzhihua.service_user.dao.SysUserNoticeDAO">
+    <resultMap id="baseResult" type="com.panzhihua.service_user.model.dos.SysUserNoticeDO">
+        <id property="id" column="id"/>
+        <result property="userId" column="user_id"/>
+        <result property="type" column="type"/>
+        <result property="title" column="title"/>
+        <result property="businessType" column="business_type"/>
+        <result property="businessTitle" column="business_title"/>
+        <result property="businessContent" column="business_content"/>
+        <result property="businessTime" column="business_time"/>
+        <result property="businessStatus" column="business_status"/>
+        <result property="createAt" column="create_at"/>
+        <result property="updateAt" column="update_at"/>
+        <result property="status" column="status"/>
+        <result property="businessId" column="business_id"/>
+        <result property="activityType" column="activity_type"/>
+
+    </resultMap>
+    <sql id="columns">
+		`id`,`user_id`,`type`,`title`,`business_type`,`business_title`,`business_content`,`business_time`,`business_status`,`create_at`,`update_at`,`status`,`business_id`,`activity_type`
+	</sql>
+
+
+    <select id="noticeUnreadNum" resultType="com.panzhihua.common.model.vos.user.NoticeUnReadVO">
+		SELECT
+		COUNT(case WHEN type=1 then id else null end )activityUnread,
+		COUNT(case WHEN type=2 then id else null end )serviceUnread,
+		COUNT(case WHEN type=3 then id else null end )systemUnread,
+		COUNT(case WHEN type=4 then id else null end )scoreUnread
+		FROM
+		sys_user_notice
+		WHERE
+		user_id =#{userId} and `status`=0
+    </select>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserRoleDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserRoleDAO.xml
new file mode 100644
index 0000000..85f0b07
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserRoleDAO.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.panzhihua.service_user.dao.SysUserRoleDAO">
+    <resultMap id="baseResult" type="com.panzhihua.service_user.model.dos.SysUserRoleDO">
+        <id property="userId" column="user_id"/>
+        <result property="roleId" column="role_id"/>
+
+    </resultMap>
+    <sql id="columns">
+		`user_id`,`role_id`
+	</sql>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/UserDao.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/UserDao.xml
new file mode 100644
index 0000000..58f5691
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/UserDao.xml
@@ -0,0 +1,425 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.panzhihua.service_user.dao.UserDao">
+    <resultMap id="baseResult" type="com.panzhihua.service_user.model.dos.SysUserDO">
+        <id property="userId" column="user_id"/>
+        <result property="account" column="account"/>
+        <result property="password" column="password"/>
+        <result property="openid" column="openid"/>
+        <result property="sessionKey" column="session_key"/>
+        <result property="unionid" column="unionid"/>
+        <result property="phone" column="phone"/>
+        <result property="nickName" column="nick_name"/>
+        <result property="name" column="name"/>
+        <result property="communityId" column="community_id"/>
+        <result property="sex" column="sex"/>
+        <result property="idCard" column="id_card"/>
+        <result property="birthday" column="birthday"/>
+        <result property="imageUrl" column="image_url"/>
+        <result property="type" column="type"/>
+        <result property="job" column="job"/>
+        <result property="isVolunteer" column="is_volunteer"/>
+        <result property="isPartymember" column="is_partymember"/>
+        <result property="status" column="status"/>
+        <result property="createAt" column="create_at"/>
+        <result property="lastLoginTime" column="last_login_time"/>
+        <result property="tags" column="tags"/>
+        <result property="familyId" column="family_id"/>
+        <result property="faceUrl" column="face_url"/>
+        <result property="faceState" column="face_state"/>
+        <result property="rejectReson" column="reject_reson"/>
+        <result property="areaId" column="area_id"/>
+        <result property="cardPhotoFront" column="card_photo_front"/>
+        <result property="cardPhotoBack" column="card_photo_back"/>
+        <result property="familyBook" column="family_book"/>
+        <result property="continuousLandingDays" column="continuous_landing_days"/>
+        <result property="isTips" column="is_tips"/>
+        <result property="workStatus" column="work_status"/>
+        <result property="workStartTime" column="work_start_time"/>
+        <result property="workEndTime" column="work_end_time"/>
+        <result property="bigAgeTips" column="big_age_tips"/>
+
+    </resultMap>
+    <sql id="columns">
+		`user_id`,`account`,`password`,`openid`,`session_key`,`unionid`,`phone`,`nick_name`,`name`,`community_id`,`sex`,`id_card`,`birthday`,`image_url`,`type`,`job`,`is_volunteer`,`is_partymember`,`status`,`create_at`,`last_login_time`,`tags`,`family_id`,`face_url`,`face_state`,`reject_reson`,`area_id`,`card_photo_front`,`card_photo_back`,`family_book`,`continuous_landing_days`,`is_tips`,`work_status`,`work_start_time`,`work_end_time`,`big_age_tips`
+	</sql>
+
+
+    <select id="indexDataCommunityBackstage" resultType="com.panzhihua.common.model.vos.IndexDataVO">
+        SELECT
+        COUNT(DISTINCT u.user_id)allUser,
+        (select COUNT(m.id) from com_mng_volunteer_mng m where m.community_id=#{communityId} and m.`state`=2)volunteerUser,
+         (select count(id) from com_pb_member cpm where cpm.audit_result = 1 and cpm.community_id = #{communityId}) partymemberUser,
+        COUNT(h.id)house
+        FROM
+        sys_user u
+        JOIN com_act c ON u.community_id = c.community_id
+        LEFT JOIN com_mng_struct_house_user h on u.user_id=h.user_id
+        WHERE u.community_id =#{communityId} and u.type=1
+    </select>
+
+    <update id="timedTaskContinuousLandingDays">
+        UPDATE sys_user u
+        SET u.continuous_landing_days =
+        IF
+        (
+        DATE_FORMAT( u.last_login_time, '%m-%d-%Y' )= DATE_FORMAT( SYSDATE(), '%m-%d-%Y' ),
+        u.continuous_landing_days + 1,
+        0)
+    </update>
+
+    <select id="selectVolunteerMngByPhone" resultType="com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO">
+        select id,create_at,state,name,phone,photo_path,political_face,reject_reson,apply_reson,address,age,job,integral,community_id,submit_user_id  from com_mng_volunteer_mng where phone=#{phone} order by create_at desc limit 1
+    </select>
+
+    <select id="selectCountMemberRole" resultType="java.lang.Integer">
+        SELECT
+             COUNT(a.id)
+        FROM
+             com_pb_member_role a
+        WHERE
+             a.phone = #{phone} and community_id=#{userCommunityId}
+    </select>
+
+    <select id="pageUserAppletsBackstage" resultType="com.panzhihua.common.model.vos.user.SysUserVO">
+        select
+        u.user_id,
+        u.phone,
+        u.nick_name,
+        u.name,
+        u.tags,
+        a.name communityName,
+        u.status,
+        u.create_at,
+        u.last_login_time
+        from sys_user u
+        left join com_act a on u.community_id=a.community_id
+        where
+        u.type=1 and u.community_id is not null
+        <if test='pageUserAppletsBackstageDTO.phone != null and pageUserAppletsBackstageDTO.phone.trim() != &quot;&quot;'>
+            and u.phone=#{pageUserAppletsBackstageDTO.phone}
+        </if>
+        <if test='pageUserAppletsBackstageDTO.communityId != null and pageUserAppletsBackstageDTO.communityId != 0'>and
+            u.community_id=#{pageUserAppletsBackstageDTO.communityId}
+        </if>
+        <if test='pageUserAppletsBackstageDTO.status != null and pageUserAppletsBackstageDTO.status != 0'>and
+            u.status=#{pageUserAppletsBackstageDTO.status}
+        </if>
+        <if test='pageUserAppletsBackstageDTO.createAtBegin != null '>and u.create_at between
+            #{pageUserAppletsBackstageDTO.createAtBegin} and #{pageUserAppletsBackstageDTO.createAtEnd}
+        </if>
+        <if test='pageUserAppletsBackstageDTO.lastLoginTimeBegin != null '>and u.last_login_time between
+            #{pageUserAppletsBackstageDTO.lastLoginTimeBegin} and #{pageUserAppletsBackstageDTO.lastLoginTimeEnd}
+        </if>
+        order by u.create_at desc
+
+    </select>
+
+    <select id="selectIndexDataKanban" resultType="com.panzhihua.common.model.vos.IndexDataKanbanVO">
+        SELECT
+        COUNT(user_id)allUser,
+        COUNT(case WHEN DATE_FORMAT(create_at,'%m-%d-%Y')=DATE_FORMAT(SYSDATE(),'%m-%d-%Y') then user_id else null end )addUser,
+        COUNT(case WHEN DATE_FORMAT(last_login_time,'%m-%d-%Y')=DATE_FORMAT(SYSDATE(),'%m-%d-%Y') then user_id else null end )activeDayUser,
+        (SELECT count(user_id) FROM sys_user WHERE type = 1 AND last_login_time > date_sub(SYSDATE(), INTERVAL 7 DAY))activeWeekUser
+        FROM
+        sys_user
+        where type=1 and community_id is not null
+            </select>
+
+    <select id="selectCommunityUserOrder" resultType="com.panzhihua.service_user.model.dtos.DataKanbanDTO">
+        select t.* from (
+        SELECT
+        a.`name`,
+        COUNT(u.user_id)num
+        FROM
+        com_act a
+        LEFT JOIN sys_user u ON a.community_id = u.community_id and u.type=1
+        GROUP BY a.community_id)t ORDER BY t.num desc
+    </select>
+
+    <select id="pageUserBackstage" resultType="com.panzhihua.common.model.vos.user.AdministratorsUserVO">
+        SELECT
+        u.user_id,
+        u.account,
+        u.`name`,
+        u.`password`,
+        u.phone,
+        e.role_name,
+        e.role_id ,
+        u.`status`,
+        u.create_at,
+        u.last_login_time
+        FROM
+        sys_user u
+        JOIN sys_user_role r ON u.user_id = r.user_id
+        JOIN sys_role e ON r.role_id = e.role_id
+        <if test='administratorsUserVO.roleId != null and administratorsUserVO.roleId!=0'>and
+            e.role_id=#{administratorsUserVO.roleId}
+        </if>
+        <where>
+            <if test='administratorsUserVO.communityId != null '>AND u.community_id =
+                #{administratorsUserVO.communityId}
+            </if>
+            <if test='administratorsUserVO.name != null and administratorsUserVO.name.trim() != &quot;&quot;'>AND u.name
+                like concat (#{administratorsUserVO.name},'%')
+            </if>
+            <if test='administratorsUserVO.phone != null and administratorsUserVO.phone.trim() != &quot;&quot;'>AND
+                u.phone like concat(#{administratorsUserVO.phone},'%')
+            </if>
+            <if test='administratorsUserVO.account != null and administratorsUserVO.account.trim() != &quot;&quot;'>AND
+                u.account like concat(#{administratorsUserVO.account},'%')
+            </if>
+        </where>
+    </select>
+
+    <select id="selectCommunityActiveUserOrder" resultType="com.panzhihua.service_user.model.dtos.DataKanbanDTO">
+        SELECT
+            COUNT( a.id ) num
+        FROM
+            com_act_activity a
+        WHERE
+            DATE_FORMAT( #{date1}, '%Y-%m-%d' )= DATE_FORMAT( a.create_at,'%Y-%m-%d')
+    </select>
+
+    <update id="gridMemberEditStatus">
+        update sys_user set status = #{gridMemberEditDTO.status} where user_id in
+        <foreach item="item" collection="gridMemberEditDTO.ids" separator="," open="(" close=")" index="">
+            #{item}
+        </foreach>
+
+    </update>
+
+    <select id="getGridMemberList" resultType="com.panzhihua.common.model.vos.grid.GridMemberVO">
+        select su.user_id,su.image_url,su.nick_name,su.account,su.phone,su.work_status,su.`status`,ca.name as
+        communityName,su.work_start_time,su.work_end_time from sys_user su left join com_act as ca on ca.community_id =
+        su.community_id where su.type = 6
+        <if test='memberRelationDTO.status != null'>AND su.status =
+            #{memberRelationDTO.status}
+        </if>
+        <if test='memberRelationDTO.gridCommunityId != null'>AND ca.community_id =
+            #{memberRelationDTO.gridCommunityId}
+        </if>
+        <if test='memberRelationDTO.gridStreetId != null'>AND ca.street_id = #{memberRelationDTO.gridStreetId}</if>
+        <if test='memberRelationDTO.workStatus != null'>AND su.work_status = #{memberRelationDTO.workStatus}</if>
+        <if test='memberRelationDTO.keyWord != null and memberRelationDTO.keyWord != &quot;&quot;'>and (su.nick_name
+            like concat(#{memberRelationDTO.keyWord},'%') OR su.user_id = #{memberRelationDTO.keyWord} OR su.account
+            like concat(#{memberRelationDTO.keyWord},'%') OR su.phone like concat(#{memberRelationDTO.keyWord},'%'))
+        </if>
+        order by su.create_at desc
+    </select>
+
+    <update id="updateServiceTeam">
+        update com_pb_service_team u set u.phone=#{newphone},is_reg=1 where u.phone=#{oldphone}
+    </update>
+
+    <delete id="deleteStoreByPhoneAndStatus">
+         delete from com_shop_store where delete_status = 1 and phone = #{phone}
+    </delete>
+
+    <select id="getPartyBuildingByIdCard" resultType="java.lang.Long">
+           select id from com_pb_member where audit_result = 1 and id_card = #{idCard}
+    </select>
+
+    <select id="getGridsMemberList"
+            resultType="com.panzhihua.common.model.vos.community.screen.event.EventGridMemberVO">
+        select user_id,nick_name,phone from sys_user where type = 6 and community_id = #{communityId} limit 3
+    </select>
+
+    <update id="updateUserArchives">
+        update sys_user set card_photo_front = #{userArchivesVO.cardPhotoFront}
+        , card_photo_back = #{userArchivesVO.cardPhotoBack}
+        ,family_book = #{userArchivesVO.familyBook}
+        ,job = #{userArchivesVO.job}
+         where user_id = #{userArchivesVO.userId}
+    </update>
+
+    <select id="selectCountSysUser" resultType="java.lang.Integer">
+        SELECT
+             COUNT(ur.role_id)
+        FROM
+             sys_user u LEFT JOIN sys_user_role ur ON u.user_id = ur.user_id
+             LEFT JOIN sys_role r ON ur.role_id = r.role_id
+        WHERE ur.role_id IS  NOT NULL AND  u.phone = #{phone}  and r.community_id=#{userCommunityId}
+    </select>
+
+    <delete id="delGridMemberRelation">
+       delete from event_grid_member_building_relation where grid_member_id = #{gridMemberId}
+    </delete>
+
+    <update id="updateStoreByPhone">
+       update com_shop_store set sys_user_id = #{sysUserId} where phone = #{phone}
+    </update>
+
+    <update id="updateComPbMemberUserId">
+        update com_pb_member set user_id = #{userId} where audit_result = 1 and id_card = #{idCard}
+    </update>
+
+    <select id="getServiceTeamList" resultType="com.panzhihua.common.model.vos.partybuilding.ComPbServiceTeamWishVO">
+        select id as managerId,`name` from com_pb_service_team where community_id = #{communityId}
+        <if test='param != null and param != &quot;&quot;'>AND `name` like concat(#{param},'%')</if>
+    </select>
+
+    <select id="getUserListByCommunityId" resultType="com.panzhihua.common.model.vos.user.SysUserVO">
+        select user_id,`name` from sys_user as su where type = 3 and community_id = #{communityId}
+    </select>
+
+    <select id="pageUserFace" resultType="com.panzhihua.common.model.vos.LoginUserInfoVO">
+        SELECT
+        u.user_id,
+        u.face_url,
+        u.nick_name,
+        u.`name`,
+        u.phone,
+        u.id_card,
+        u.face_state,
+        c.area_name communityName,
+        u.create_at
+        FROM
+        sys_user u
+        JOIN com_mng_struct_area c ON u.area_id = c.id
+        <if test='loginUserInfoVO.communityName != null and loginUserInfoVO.communityName.trim() != &quot;&quot;'>
+            AND c.`area_name` like concat(#{loginUserInfoVO.communityName},'%')
+        </if>
+        where u.face_state is not null and u.type=1 and u.community_id=#{loginUserInfoVO.communityId}
+        <if test='loginUserInfoVO.name != null and loginUserInfoVO.name.trim() != &quot;&quot;'>
+            and u.`name` like concat(#{loginUserInfoVO.name},'%')
+        </if>
+        <if test='loginUserInfoVO.phone != null and loginUserInfoVO.phone.trim() != &quot;&quot;'>
+            AND u.phone like concat(#{loginUserInfoVO.phone},'%')
+        </if>
+        order by u.face_state asc,u.create_at asc
+    </select>
+
+    <update id="putUserTag">
+      update sys_user set tags = #{sysUserDO.tags}  where user_id = #{sysUserDO.userId}
+    </update>
+
+    <update id="updateMemberRole">
+      update com_pb_member_role u set u.phone=#{newphone},is_reg=1 where u.phone=#{oldphone}
+    </update>
+
+    <select id="selectCountTeam" resultType="java.lang.Integer">
+        SELECT
+             COUNT(a.id)
+        FROM
+             com_pb_service_team a
+        WHERE
+             a.phone = #{phone} and community_id=#{userCommunityId}
+    </select>
+
+    <select id="selectExport" resultType="com.panzhihua.common.model.dtos.user.EexcelUserDTO">
+        SELECT
+        u.user_id 'order',
+        h.house_name doorNumber,
+        if(h.state=2,'租住','自主')isRent,
+        u.`name`,
+        '汉' nation,
+        if(u.is_partymember=1,'党员','群众')politicalOutlook,
+        '未知' maritalStatus,
+        u.phone,
+        '未知' education,
+        u.id_card,
+        '未知' company,
+        '未知' residence,
+        '未知' isPanZhiHua,
+        '未知' situation,
+        '未知' isContact,
+        '未知' major,
+        '未知' soldier,
+        '未知' disability,
+        '未知' lowIncomeHouseholds,
+        '未知' lowIncomePeople,
+        '未知' oldPeople,
+        '未知' specialServiceFamily,
+        '未知' keyPersonnel
+        FROM
+        sys_user u
+        left join com_mng_struct_house_user hu on hu.user_id=u.user_id
+        left join com_mng_struct_house h on hu.house_code=h.house_code
+        <if test='exportUserDTO.areaName != null and exportUserDTO.areaName.trim() != &quot;&quot;'>JOIN
+            com_mng_struct_area c ON u.area_id = c.id
+        </if>
+        <if test='exportUserDTO.areaName == null or exportUserDTO.areaName.trim() == &quot;&quot;'>LEFT JOIN
+            com_mng_struct_area c ON u.area_id = c.id
+        </if>
+        <if test='exportUserDTO.areaName != null and exportUserDTO.areaName.trim() != &quot;&quot;'>AND c.`area_name`
+            like concat(#{exportUserDTO.areaName},'%')
+        </if>
+        where u.community_id=#{exportUserDTO.communityId} and u.type=1
+        <if
+                test='exportUserDTO.name != null and exportUserDTO.name.trim() != &quot;&quot;'>and u.`name` like
+            concat(#{exportUserDTO.name},'%')
+        </if>
+        <if test='exportUserDTO.phone != null and exportUserDTO.phone.trim() != &quot;&quot;'>AND u.phone like
+            concat(#{exportUserDTO.phone},'%')
+        </if>
+        group by u.user_id
+    </select>
+
+    <select id="pageNotice" resultType="com.panzhihua.common.model.vos.user.SysUserNoticeVO">
+        select * from
+        sys_user_notice
+        where
+        user_id=#{pageDTO.userId}
+        <if test='pageDTO.type != null and pageDTO.type != 0'>and type=#{pageDTO.type}
+        </if>
+        order by create_at desc
+
+    </select>
+
+    <select id="selectCountHouse" resultType="java.lang.Integer">
+        SELECT
+            COUNT(h.id)
+        FROM
+            com_mng_struct_area a
+            LEFT JOIN com_mng_struct_house h on  h.parent_code=a.area_code
+        WHERE
+            a.area_name = #{areaName}
+    </select>
+
+    <update id="passResetUser">
+        update sys_user set password = #{gridMemberDTO.password} where user_id in
+        <foreach item="item" collection="gridMemberDTO.ids" separator="," open="(" close=")" index="">
+            #{item}
+        </foreach>
+
+    </update>
+
+    <update id="deleteUserTest">
+     update sys_user set nick_name=null ,community_id=null,area_id=null where user_id=#{userId}
+    </update>
+
+    <select id="selectCountArea" resultType="java.lang.Integer">
+    select COUNT(a.id) from com_mng_struct_area a where a.area_name=#{areaName}
+    </select>
+
+    <update id="addLcMember">
+     update lc_compare_code_member set local_grid_member_id = #{userId},grid_member_name = #{userName} where id = #{lcMemberId}
+    </update>
+
+    <update id="updateFaceState">
+      update sys_user set face_state=null where user_id=#{userId}
+    </update>
+
+    <select id="selectCommunity" resultType="com.panzhihua.common.model.vos.community.ComActVO">
+       select name from com_act where community_id=#{communityId}
+    </select>
+
+    <delete id="delLcMember">
+         delete from lc_compare_code_member where local_grid_member_id = #{gridMemberId}
+    </delete>
+
+    <select id="getBuilding" resultType="java.util.Map">
+       select id,village_id,act_id from com_mng_building where id = #{buildingId}
+    </select>
+
+    <select id="getLcMemberId" resultType="java.util.Map">
+        select lc_grid_member_id,lc_grid_member_name,lc_bind_user_id from lc_compare_code_member where local_grid_member_id = #{gridMemberId}
+    </select>
+
+    <select id="getGridIsOk" resultType="java.lang.Integer">
+          select count(id) from event_grid_member_relation where grid_member_id = #{userId}
+    </select>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/test/java/com/panzhihua/service_user/dao/UserDaoTest.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/test/java/com/panzhihua/service_user/dao/UserDaoTest.java
new file mode 100644
index 0000000..fa78f8a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/test/java/com/panzhihua/service_user/dao/UserDaoTest.java
@@ -0,0 +1,47 @@
+package com.panzhihua.service_user.dao;
+
+import javax.annotation.Resource;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.service_user.ServiceUserApplication;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 应用模块名称
+ * <p>
+ * 代码描述
+ * <p>
+ * Copyright: Copyright (C) 2021 XXX, Inc. All rights reserved.
+ * <p>
+ * Company: 成都呐喊信息技术有限公司
+ * <p>
+ *
+ * @author manailin
+ * @since 2021/9/13 10:27
+ */
+@Slf4j
+@SpringBootTest(classes = ServiceUserApplication.class)
+class UserDaoTest {
+
+    @Resource
+    private UserDao userDao;
+
+    @Test
+    void pageUserBackstage() {
+        Page page = new Page(1, 20);
+        AdministratorsUserVO administratorsUserVO = new AdministratorsUserVO();
+        administratorsUserVO.setName("班长");
+        IPage<AdministratorsUserVO> result = userDao.pageUserBackstage(page, administratorsUserVO);
+        String pretty = JSONArray.toJSONString(result, SerializerFeature.PrettyFormat,
+            SerializerFeature.WriteMapNullValue, SerializerFeature.WriteDateUseDateFormat);
+        log.info(pretty);
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java
index 45a5521..937f83b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java
@@ -204,4 +204,49 @@
         log.info("执行结果【{}】", r.toString());
         return ReturnT.SUCCESS;
     }
+
+    /**
+     * 定时任务每半小时执行一次将一起议浏览量写入到表中
+     */
+    @XxlJob("timedTaskWriteDiscussViewNumToTableJobHandler")
+    public ReturnT<String> timedTaskWriteDiscussViewNumToTableJobHandler(String param) throws Exception {
+        log.info("定时任务每半小时执行一次将一起议浏览量写入到表中");
+        R r = communityService.timedTaskWriteDiscussViewNumToTable();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    @XxlJob("timedTaskEldersAuthJobHandler")
+    public ReturnT<String> timedTaskEldersAuthJobHandler(String param) throws Exception {
+        log.info("定时任务扫描上月高龄认证使用视频认证的用户添加成功记录");
+        R r = communityService.timedTaskEldersAuthRecordJobHandler();
+        log.info("执行结果【{}】", r.toString());
+
+        log.info("定时任务扫描高龄认证记录统计信息");
+        R r1 = communityService.timedTaskEldersAuthJobHandler();
+        log.info("执行结果【{}】", r1.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 定时任务每月1号0点统计高龄老人本期应该认证总人数
+     */
+    @XxlJob("timedTaskElderAuthStatisticsJobHandler")
+    public ReturnT<String> timedTaskElderAuthStatisticsJobHandler(String param) {
+        log.info("定时任务每月1号0点统计高龄老人本期应该认证总人数");
+        R r = communityService.timedTaskElderAuthStatisticsJobHandler();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 定时任务每年3月1号0点统计养老认证本期应该认证总人数
+     */
+    @XxlJob("timedTaskPensionAuthStatisticsJobHandler")
+    public ReturnT<String> timedTaskPensionAuthStatisticsJobHandler(String param) {
+        log.info("定时任务每年3月1号0点统计养老认证本期应该认证总人数");
+        R r = communityService.timedTaskPensionAuthStatisticsJobHandler();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/DiscussJobHandler.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/DiscussJobHandler.java
new file mode 100644
index 0000000..9a0f208
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/DiscussJobHandler.java
@@ -0,0 +1,30 @@
+package com.panzhihua.timejob.jobhandler;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * @author lyq
+ * 议事投票定时任务
+ */
+@Slf4j
+@Component
+public class DiscussJobHandler {
+
+    @Resource
+    private CommunityService communityService;
+
+    @XxlJob("timedTaskDiscussInspectStatusJobHandler")
+    public ReturnT<String> timedTaskDiscussInspectStatusJobHandler(String param) throws Exception {
+        log.info("定时任务扫描议事投票状态");
+        R r = communityService.timedTaskDiscussInspectStatus();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
index c626aca..390f3fe 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
@@ -216,8 +216,11 @@
                 noLoginUrl.add("/api/applets/community/pagedynamic");
                 noLoginUrl.add("/api/applets/community/pageactivity");
                 noLoginUrl.add("/api/applets/community/listactivitysign");
+                noLoginUrl.add("/api/applets/common/uploadimages");
                 noLoginUrl.add("/api/applets/workguide/pageworkguide");
                 noLoginUrl.add("/api/applets/workguide/detailworkguide");
+                noLoginUrl.add("/api/applets/workguide/list");
+                noLoginUrl.add("/api/applets/workguide/list/classify");
                 noLoginUrl.add("/api/applets/partybuilding/pagedynamic");
                 noLoginUrl.add("/api/applets/partybuilding/infodynamic");
                 noLoginUrl.add("/api/applets/convenient/business/area/page");
@@ -244,6 +247,8 @@
                 noLoginUrl.add("/api/applets/partybuilding/pageactivity");
                 noLoginUrl.add("/api/applets/community/pagevolunteer");
                 noLoginUrl.add("/api/applets/community/volunteer");
+                noLoginUrl.add("/api/applets/discuss/increase-view-num");
+                noLoginUrl.add("/api/applets/community/evaluate/page");
                 if (noLoginUrl.contains(requestURI)) {
                     List<SimpleGrantedAuthority> authorities = new ArrayList<>();
                     authorities.add(new SimpleGrantedAuthority(SecurityConstants.ROLE_APPLETS));

--
Gitblit v1.7.1